fixed issue 56 : with windowmaker

git-svn-id: http://tint2.googlecode.com/svn/trunk@89 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
lorthiois@bbsoft.fr 2009-06-06 21:03:00 +00:00
parent 58013e2e0c
commit 829c910133
4 changed files with 15 additions and 5 deletions

View file

@ -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 2009-06-06
- add 'wm_menu' config option to disable window manager's menu - 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. if you don't specify "wm_menu = ", the default value will show WM menu.

View file

@ -430,10 +430,15 @@ void event_property_notify (XEvent *e)
} }
// Window desktop changed // Window desktop changed
else if (at == server.atom._NET_WM_DESKTOP) { else if (at == server.atom._NET_WM_DESKTOP) {
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); remove_task (tsk);
add_task (win); add_task (win);
panel_refresh = 1; panel_refresh = 1;
} }
}
if (!server.got_root_win) server.root_win = RootWindow (server.dsp, server.screen); if (!server.got_root_win) server.root_win = RootWindow (server.dsp, server.screen);
} }

BIN
src/tint2

Binary file not shown.

View file

@ -96,7 +96,7 @@ int window_is_hidden (Window win)
at = server_get_property (win, server.atom._NET_WM_STATE, XA_ATOM, &count); at = server_get_property (win, server.atom._NET_WM_STATE, XA_ATOM, &count);
for (i = 0; i < count; i++) { 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); XFree(at);
return 1; return 1;
} }
@ -113,9 +113,10 @@ int window_is_hidden (Window win)
XFree(at); XFree(at);
for (i=0 ; i < nb_panel ; i++) { for (i=0 ; i < nb_panel ; i++) {
if (panel1[i].main_win == win) if (panel1[i].main_win == win) {
return 1; return 1;
} }
}
// specification // specification
// Windows with neither _NET_WM_WINDOW_TYPE nor WM_TRANSIENT_FOR set // Windows with neither _NET_WM_WINDOW_TYPE nor WM_TRANSIENT_FOR set