]> Dogcows Code - chaz/tint2/commitdiff
fixed issue 56 : with windowmaker
authorThierry Lorthiois <lorthiois@bbsoft.fr>
Sat, 6 Jun 2009 21:03:00 +0000 (21:03 +0000)
committerThierry Lorthiois <lorthiois@bbsoft.fr>
Sat, 6 Jun 2009 21:03:00 +0000 (21:03 +0000)
ChangeLog
src/tint.c
src/tint2
src/util/window.c

index a99f1b32c64dd48bf6556e188ae753b97ce1bbfc..9ae045244c976e103f904d5963da3ad7f8a803b1 100644 (file)
--- 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.
index 1429adf8154eb97b2bd2e1966e9955c353d93c8c..8da6866d5b310af2031b10f04937223057e82660 100644 (file)
@@ -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);
index e7f23f5f35e6826395fbf96ac6b9e94a0528aac7..19e1c5e4d0610ee2a16b78061c9691459f19b83b 100755 (executable)
Binary files a/src/tint2 and b/src/tint2 differ
index 1954ad35effb48fbbb2a7532810c9088f4118f2c..b57c4a4db7bfbd0fe3e0c33a78106884d8f7c38b 100644 (file)
@@ -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
This page took 0.02837 seconds and 4 git commands to generate.