summaryrefslogtreecommitdiff
path: root/openbox/client.h
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2008-02-14 10:47:49 +0100
committerDana Jansens <danakj@orodu.net>2008-02-14 15:09:24 -0500
commit4c7cc1cfa64bf5722f059eae0528d510c2ae636f (patch)
treebf9657e364a76cdcd11ae86c81335b74d4d56fa0 /openbox/client.h
parent512d93afcc3e7dd5caa42cdb69508964c6338f3d (diff)
Introducing the icon cache.
If an icon is the same as one in the cache, then it uses that one. icons of different sizes (from the same client) are linked together into one, and resizes of icons are cached and linked to all the various sizes. so you only need one icon in memory for all your terminals now. ya!
Diffstat (limited to 'openbox/client.h')
-rw-r--r--openbox/client.h20
1 files changed, 6 insertions, 14 deletions
diff --git a/openbox/client.h b/openbox/client.h
index c34d0ab6..c2461cb9 100644
--- a/openbox/client.h
+++ b/openbox/client.h
@@ -40,15 +40,6 @@ struct _ObSessionState;
struct _ObPrompt;
typedef struct _ObClient ObClient;
-typedef struct _ObClientIcon ObClientIcon;
-
-/*! Holds an icon in ARGB format */
-struct _ObClientIcon
-{
- gint width;
- gint height;
- RrPixel32 *data;
-};
/*! Possible window types */
typedef enum
@@ -307,10 +298,8 @@ struct _ObClient
*/
guint functions;
- /*! Icons for the client as specified on the client window */
- ObClientIcon *icons;
- /*! The number of icons in icons */
- guint nicons;
+ /* The window's icon, in a variety of shapes and sizes */
+ RrImage *icon_set;
/*! Where the window should iconify to/from */
Rect icon_geometry;
@@ -644,7 +633,10 @@ void client_setup_decor_and_functions(ObClient *self, gboolean reconfig);
/*! Sets the window's type and transient flag */
void client_get_type_and_transientness(ObClient *self);
-const ObClientIcon *client_icon(ObClient *self, gint w, gint h);
+/*! Returns a client's icon set, or its parents (recursively) if it doesn't
+ have one
+*/
+RrImage* client_icon(ObClient *self);
/*! Return TRUE if the client is transient for some other window. Return
FALSE if it's not transient or there is no window for it to be