>From ad6689f8be4be60e51939655dae7ab90d92fca7b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?"Rodolfo=20Garc=C3=ADa=20Pe=C3=B1as=20(kix)"?= <[email protected]>
Date: Sun, 4 Mar 2012 12:26:33 +0100
Subject: [PATCH 1/8] WindowMaker: wmspec.c clean
This commit clean the source and add some comments.
---
src/wmspec.c | 23 +++++++++++------------
1 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/src/wmspec.c b/src/wmspec.c
index 1b4cf03..5bdc43c 100644
--- a/src/wmspec.c
+++ b/src/wmspec.c
@@ -404,18 +404,10 @@ static RImage *makeRImageFromARGBData(unsigned long *data)
for (imgdata = image->data, i = 2; i < size + 2; i++, imgdata += 4) {
pixel = data[i];
-#if 0//BYTE_ORDER == BIG_ENDIAN
- imgdata[2] = (pixel >> 24) & 0xff; /* A */
- imgdata[1] = (pixel >> 16) & 0xff; /* R */
- imgdata[0] = (pixel >> 8) & 0xff; /* G */
- imgdata[3] = (pixel >> 0) & 0xff; /* B */
-#else /* Little endian */
imgdata[3] = (pixel >> 24) & 0xff; /* A */
imgdata[0] = (pixel >> 16) & 0xff; /* R */
imgdata[1] = (pixel >> 8) & 0xff; /* G */
imgdata[2] = (pixel >> 0) & 0xff; /* B */
-#endif /* endianness */
-
}
return image;
@@ -428,34 +420,41 @@ static void updateIconImage(WWindow * wwin)
Atom type;
int format;
+ /* Refresh icon image from X11 */
if (wwin->net_icon_image)
RReleaseImage(wwin->net_icon_image);
+
wwin->net_icon_image = NULL;
if (XGetWindowProperty(dpy, wwin->client_win, net_wm_icon, 0L, LONG_MAX,
False, XA_CARDINAL, &type, &format, &items,
&rest,
- (unsigned char **)&property) != Success ||
!property) {
+ (unsigned char **)&property) != Success ||
!property)
return;
- }
if (type != XA_CARDINAL || format != 32 || items < 2) {
XFree(property);
return;
}
+ /* Find the best icon */
data = findBestIcon(property, items);
if (!data) {
XFree(property);
return;
}
+ /* Save the best icon in the X11 icon */
wwin->net_icon_image = makeRImageFromARGBData(data);
XFree(property);
- if (wwin->icon) wIconUpdate(wwin->icon);
+ /* Refresh the Window Icon */
+ if (wwin->icon)
+ wIconUpdate(wwin->icon);
+
+ /* Refresh the application icon */
WApplication *app = wApplicationOf(wwin->main_window);
- if (app && app->app_icon){
+ if (app && app->app_icon) {
wIconUpdate(app->app_icon->icon);
wAppIconPaint(app->app_icon);
}
--
1.7.7.3
--
||// //\\// Rodolfo "kix" Garcia
||\\// //\\ http://www.kix.es/
>From ad6689f8be4be60e51939655dae7ab90d92fca7b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?"Rodolfo=20Garc=C3=ADa=20Pe=C3=B1as=20(kix)"?= <[email protected]>
Date: Sun, 4 Mar 2012 12:26:33 +0100
Subject: [PATCH 1/8] WindowMaker: wmspec.c clean
This commit clean the source and add some comments.
---
src/wmspec.c | 23 +++++++++++------------
1 files changed, 11 insertions(+), 12 deletions(-)
diff --git a/src/wmspec.c b/src/wmspec.c
index 1b4cf03..5bdc43c 100644
--- a/src/wmspec.c
+++ b/src/wmspec.c
@@ -404,18 +404,10 @@ static RImage *makeRImageFromARGBData(unsigned long *data)
for (imgdata = image->data, i = 2; i < size + 2; i++, imgdata += 4) {
pixel = data[i];
-#if 0//BYTE_ORDER == BIG_ENDIAN
- imgdata[2] = (pixel >> 24) & 0xff; /* A */
- imgdata[1] = (pixel >> 16) & 0xff; /* R */
- imgdata[0] = (pixel >> 8) & 0xff; /* G */
- imgdata[3] = (pixel >> 0) & 0xff; /* B */
-#else /* Little endian */
imgdata[3] = (pixel >> 24) & 0xff; /* A */
imgdata[0] = (pixel >> 16) & 0xff; /* R */
imgdata[1] = (pixel >> 8) & 0xff; /* G */
imgdata[2] = (pixel >> 0) & 0xff; /* B */
-#endif /* endianness */
-
}
return image;
@@ -428,34 +420,41 @@ static void updateIconImage(WWindow * wwin)
Atom type;
int format;
+ /* Refresh icon image from X11 */
if (wwin->net_icon_image)
RReleaseImage(wwin->net_icon_image);
+
wwin->net_icon_image = NULL;
if (XGetWindowProperty(dpy, wwin->client_win, net_wm_icon, 0L, LONG_MAX,
False, XA_CARDINAL, &type, &format, &items, &rest,
- (unsigned char **)&property) != Success || !property) {
+ (unsigned char **)&property) != Success || !property)
return;
- }
if (type != XA_CARDINAL || format != 32 || items < 2) {
XFree(property);
return;
}
+ /* Find the best icon */
data = findBestIcon(property, items);
if (!data) {
XFree(property);
return;
}
+ /* Save the best icon in the X11 icon */
wwin->net_icon_image = makeRImageFromARGBData(data);
XFree(property);
- if (wwin->icon) wIconUpdate(wwin->icon);
+ /* Refresh the Window Icon */
+ if (wwin->icon)
+ wIconUpdate(wwin->icon);
+
+ /* Refresh the application icon */
WApplication *app = wApplicationOf(wwin->main_window);
- if (app && app->app_icon){
+ if (app && app->app_icon) {
wIconUpdate(app->app_icon->icon);
wAppIconPaint(app->app_icon);
}
--
1.7.7.3