X-Git-Url: https://git.brokenzipper.com/gitweb?a=blobdiff_plain;f=src%2Futil%2Fwindow.c;h=1aa08774e28f9f93369f5a49b3bdd87f53d4c0f7;hb=367bf8f76227dea6e7e10e974967ae1d60cfe38e;hp=1cc91a81f124b7bf9ad0c4f08e5d2ed0fd91e22a;hpb=9cb781048d0a1cf55f0044e2f9f65ac9a5a241e9;p=chaz%2Ftint2 diff --git a/src/util/window.c b/src/util/window.c index 1cc91a8..1aa0877 100644 --- a/src/util/window.c +++ b/src/util/window.c @@ -33,6 +33,7 @@ #include "window.h" #include "server.h" #include "panel.h" +#include "taskbar.h" @@ -79,18 +80,19 @@ int window_is_hidden (Window win) Atom *at; int count, i; - if (XGetTransientForHint(server.dsp, win, &window) != 0) { - if (window) { - return 1; - } - } - 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_TASKBAR) { XFree(at); return 1; } + 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) ) { + XFree(at); + return 1; + } + } } XFree(at);