From: Rodolfo García Peñas (kix) Date: Sat, 3 Nov 2012 18:54:07 +0000 (+0100) Subject: appearanceObserver doesn't create icon again X-Git-Tag: wmaker-0.95.4~58 X-Git-Url: https://repo.or.cz/w/wmaker-crm.git/commitdiff_plain/fd9bb936aa9379c27ba3bbf0c1fdb6c0ed1626cc appearanceObserver doesn't create icon again The function appearanceObserver() is now faster because it doesn't re-create the icon. Now it only draws the icon pixmap. --- diff --git a/src/icon.c b/src/icon.c index 2980db8e..f82be538 100644 --- a/src/icon.c +++ b/src/icon.c @@ -72,15 +72,18 @@ static void unset_icon_image(WIcon *icon); /****** Notification Observers ******/ -static void appearanceObserver(void *self, WMNotification * notif) +static void appearanceObserver(void *self, WMNotification *notif) { WIcon *icon = (WIcon *) self; uintptr_t flags = (uintptr_t)WMGetNotificationClientData(notif); - if ((flags & WTextureSettings) || (flags & WFontSettings)) - icon->force_paint = 1; - - wIconPaint(icon); + if ((flags & WTextureSettings) || (flags & WFontSettings)) { + /* If the rimage exists, update the icon, else create it */ + if (icon->file_image) + update_icon_pixmap(icon); + else + wIconPaint(icon); + } /* so that the appicon expose handlers will paint the appicon specific * stuff */