summaryrefslogtreecommitdiff
path: root/openbox/client_list_combined_menu.c
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_list_combined_menu.c
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_list_combined_menu.c')
-rw-r--r--openbox/client_list_combined_menu.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/openbox/client_list_combined_menu.c b/openbox/client_list_combined_menu.c
index 76a819fc..a04d07d6 100644
--- a/openbox/client_list_combined_menu.c
+++ b/openbox/client_list_combined_menu.c
@@ -56,8 +56,6 @@ static gboolean self_update(ObMenuFrame *frame, gpointer data)
if (client_normal(c) && (!c->skip_taskbar || c->iconic) &&
(c->desktop == desktop || c->desktop == DESKTOP_ALL))
{
- const ObClientIcon *icon;
-
empty = FALSE;
if (c->iconic) {
@@ -69,11 +67,9 @@ static gboolean self_update(ObMenuFrame *frame, gpointer data)
e = menu_add_normal(menu, desktop, c->title, NULL, FALSE);
}
- if (config_menu_client_list_icons
- && (icon = client_icon(c, 32, 32))) {
- e->data.normal.icon_width = icon->width;
- e->data.normal.icon_height = icon->height;
- e->data.normal.icon_data = icon->data;
+ if (config_menu_client_list_icons) {
+ e->data.normal.icon = client_icon(c);
+ RrImageRef(e->data.normal.icon);
e->data.normal.icon_alpha =
c->iconic ? OB_ICONIC_ALPHA : 0xff;
}