From: Thierry Lorthiois Date: Sat, 6 Jun 2009 21:03:00 +0000 (+0000) Subject: fixed issue 56 : with windowmaker X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=63d0566a83024a422d1d4bedb1833d439d92b270;p=chaz%2Ftint2 fixed issue 56 : with windowmaker --- diff --git a/ChangeLog b/ChangeLog index a99f1b3..9ae0452 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-06-06 +- fixed issue 56 : with windowmaker + bug in windowmaker : send unecessary 'desktop changed' each time focus changed + 2009-06-06 - add 'wm_menu' config option to disable window manager's menu if you don't specify "wm_menu = ", the default value will show WM menu. diff --git a/src/tint.c b/src/tint.c index 1429adf..8da6866 100644 --- a/src/tint.c +++ b/src/tint.c @@ -430,9 +430,14 @@ void event_property_notify (XEvent *e) } // Window desktop changed else if (at == server.atom._NET_WM_DESKTOP) { - remove_task (tsk); - add_task (win); - panel_refresh = 1; + int desktop = window_get_desktop (win); + //printf(" Window desktop changed %d, %d\n", tsk->desktop, desktop); + // bug in windowmaker : send unecessary 'desktop changed' when focus changed + if (desktop != tsk->desktop) { + remove_task (tsk); + add_task (win); + panel_refresh = 1; + } } if (!server.got_root_win) server.root_win = RootWindow (server.dsp, server.screen); diff --git a/src/tint2 b/src/tint2 index e7f23f5..19e1c5e 100755 Binary files a/src/tint2 and b/src/tint2 differ diff --git a/src/util/window.c b/src/util/window.c index 1954ad3..b57c4a4 100644 --- a/src/util/window.c +++ b/src/util/window.c @@ -96,7 +96,7 @@ int window_is_hidden (Window win) at = server_get_property (win, server.atom._NET_WM_STATE, XA_ATOM, &count); for (i = 0; i < count; i++) { - if (at[i] == server.atom._NET_WM_STATE_SKIP_PAGER || at[i] == server.atom._NET_WM_STATE_SKIP_TASKBAR) { + if (at[i] == server.atom._NET_WM_STATE_SKIP_TASKBAR) { XFree(at); return 1; } @@ -113,8 +113,9 @@ int window_is_hidden (Window win) XFree(at); for (i=0 ; i < nb_panel ; i++) { - if (panel1[i].main_win == win) + if (panel1[i].main_win == win) { return 1; + } } // specification