[repo.or.cz] wmaker-crm.git branch master updated: wmaker-0.96.0-110-g4bce0e64c6e7

1 view
Skip to first unread message

crmafra

unread,
Jul 16, 2026, 3:18:08 PM (6 days ago) Jul 16
to wmake...@googlegroups.com
This is an automated email generated because a ref change occurred in the
git repository for project wmaker-crm.git.

The branch, master has been updated
via 4bce0e64c6e7909a80a59ef199c6adea13d0d281 (commit)
from 774e6962702ec0666f155ed8320f5c9e36591858 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 4bce0e64c6e7909a80a59ef199c6adea13d0d281
Author: David Maciejak <david.m...@gmail.com>
Date: Mon, 6 Jul 2026 21:52:38 +0200
URL: <https://repo.or.cz/wmaker-crm.git/4bce0e64c6e7909a>

wmaker: prefer per-window _NET_WM_ICON in the switch panel

addIconForWindow() tried the shared application icon before the
per-window net_icon_image, so every window under one group leader
showed whatever the appicon had derived for the leader and a
secondary window's own _NET_WM_ICON never appeared in Alt-Tab. Swap
the order so a window that supplies its own icon shows it, falling
back to the appicon only when the window has none, which keeps the
original intent of preferring the appicon over the generic default
for clients that set nothing.
---
src/switchpanel.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)

diff --git a/src/switchpanel.c b/src/switchpanel.c
index af6de524adab..297ce8dfe3db 100644
--- a/src/switchpanel.c
+++ b/src/switchpanel.c
@@ -192,14 +192,20 @@ static void addIconForWindow(WSwitchPanel *panel, WMWidget *parent, WWindow *wwi
WMResizeWidget(icon, icon_tile_size, icon_tile_size);
WMMoveWidget(icon, x, y);

+ /* Prefer the per-window _NET_WM_ICON so windows that share a
+ * group leader but ship distinct icons (a browser and its addon
+ * windows for instance) each show their own image, then fall
+ * back to the shared application icon so a client with no
+ * _NET_WM_ICON still picks up whatever the appicon derived from
+ * WM_HINTS or the user icon database. */
+ if (!WFLAGP(wwin, always_user_icon) && wwin->net_icon_image)
+ image = RRetainImage(wwin->net_icon_image);
+
wapp = wApplicationOf(wwin->main_window);
- if (!WFLAGP(wwin, always_user_icon) && wapp && wapp->app_icon &&
+ if (!image && !WFLAGP(wwin, always_user_icon) && wapp && wapp->app_icon &&
wapp->app_icon->icon && wapp->app_icon->icon->file_image)
image = RRetainImage(wapp->app_icon->icon->file_image);

- if (!image && !WFLAGP(wwin, always_user_icon) && wwin->net_icon_image)
- image = RRetainImage(wwin->net_icon_image);
-
/* get_icon_image() includes the default icon image */
if (!image)
image = get_icon_image(panel->scr, wwin->wm_instance, wwin->wm_class, icon_tile_size);

-----------------------------------------------------------------------

Summary of changes:
src/switchpanel.c | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)


repo.or.cz automatic notification. Contact project admin crm...@gmail.com
if you want to unsubscribe, or site admin ad...@repo.or.cz if you receive
no reply.
--
wmaker-crm.git ("The Window Maker window manager")
Reply all
Reply to author
Forward
0 new messages