From: "Rodolfo García Peñas (kix)" <[email protected]>
The function wClientCheckProperty() updates the icon using the function
updateIconImage() at wmspec.c (no is non static).
The code is the same, with two exceptions:
1. Now updates net_icon_image (window image) too. IMO the old code should do
it, but it didn't. IMO was a mistake.
2. Now, the code
- if (wwin->flags.miniaturized && wwin->icon) {
- wIconUpdate(wwin->icon, NULL);
- }
is in wmspec.c
- if (wwin->icon) {
- wIconUpdate(wwin->icon, NULL);
- }
Really, it old code was wrong, because with the current code, the wwin->icon
exists
only if the miniwindow exists, therefore, this code (old code)
- if (wwin->flags.miniaturized && wwin->icon) {
is "if (1 && 1)" or "if (0 && 0), if the wwin->icon exists is minimized, else,
it doesn't exists.
Therefore, the code is better and solves two issues.
---
src/client.c | 19 ++++---------------
src/wmspec.c | 2 +-
src/wmspec.h | 1 +
3 files changed, 6 insertions(+), 16 deletions(-)
diff --git a/src/client.c b/src/client.c
index 975adb1..2ae1e48 100644
--- a/src/client.c
+++ b/src/client.c
@@ -477,27 +477,16 @@ void wClientCheckProperty(WWindow * wwin, XPropertyEvent
* event)
if (wwin->wm_hints) {
/* update icon */
- if ((wwin->wm_hints->flags & IconPixmapHint)
- || (wwin->wm_hints->flags & IconWindowHint)) {
- WApplication *wapp;
-
- if (wwin->flags.miniaturized && wwin->icon) {
- wIconUpdate(wwin->icon, NULL);
- }
- wapp = wApplicationOf(wwin->main_window);
- if (wapp && wapp->app_icon) {
- wIconUpdate(wapp->app_icon->icon, NULL);
- wAppIconPaint(wapp->app_icon);
- }
- }
+ if ((wwin->wm_hints->flags & IconPixmapHint) ||
+ (wwin->wm_hints->flags & IconWindowHint))
+ updateIconImage(wwin);
if (wwin->wm_hints->flags & UrgencyHint)
wwin->flags.urgent = 1;
else
wwin->flags.urgent = 0;
+
wAppBounceWhileUrgent(wApplicationOf(wwin->main_window));
- /*} else if (wwin->fake_group!=NULL) {
- wwin->group_id = wwin->fake_group->leader; */
} else {
wwin->group_id = None;
}
diff --git a/src/wmspec.c b/src/wmspec.c
index a261ef9..c0600c5 100644
--- a/src/wmspec.c
+++ b/src/wmspec.c
@@ -485,7 +485,7 @@ RImage *get_window_image_from_x11(Window window)
return image;
}
-static void updateIconImage(WWindow *wwin)
+void updateIconImage(WWindow *wwin)
{
/* Remove the icon image from X11 */
if (wwin->net_icon_image)
diff --git a/src/wmspec.h b/src/wmspec.h
index 7fecf67..e0e5adb 100644
--- a/src/wmspec.h
+++ b/src/wmspec.h
@@ -45,6 +45,7 @@ char *wNETWMGetIconName(Window window);
char *wNETWMGetWindowName(Window window);
void wNETFrameExtents(WWindow *wwin);
void wNETCleanupFrameExtents(WWindow *wwin);
+void updateIconImage(WWindow *wwin);
RImage *get_window_image_from_x11(Window window);
RImage *get_window_image(WWindow *wwin);
RImage *get_window_image_def(WWindow *wwin);
--
1.7.10.4
--
To unsubscribe, send mail to [email protected].