X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Futil%2Fwindow.c;h=06ab09359054e334aaedd5b100482a4e7d0072b0;hb=402b36c03316bcbc690eda914e7d97d12188c89f;hp=caa293438e8cab0ab11a704048beaad5745b8dab;hpb=bab0811f845cedb817a3c3a29dd91ade07d5a886;p=chaz%2Ftint2 diff --git a/src/util/window.c b/src/util/window.c index caa2934..06ab093 100644 --- a/src/util/window.c +++ b/src/util/window.c @@ -88,7 +88,7 @@ int window_is_hidden (Window win) } if (at[i] == server.atom._NET_WM_STATE_MODAL) { // do not add modal windows if the transient window is already in the taskbar - if ( XGetTransientForHint(server.dsp, win, &window) && task_get_task(window) ) { + if ( XGetTransientForHint(server.dsp, win, &window) && task_get_tasks(window) ) { XFree(at); return 1; } @@ -146,20 +146,18 @@ int window_get_monitor (Window win) int window_is_iconified (Window win) { - if (IconicState == get_property32(win, server.atom.WM_STATE, server.atom.WM_STATE)) { - // openbox sets on shaded windows the IconicState, however we do not consider these windows iconified - Atom *at; - int count, i; - 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_SHADED) { - XFree(at); - return 0; - } + // EWMH specification : minimization of windows use _NET_WM_STATE_HIDDEN. + // WM_STATE is not accurate for shaded window and in multi_desktop mode. + Atom *at; + int count, i; + 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_HIDDEN) { + XFree(at); + return 1; } - XFree(at); - return 1; } + XFree(at); return 0; }