fixed iconified detection
git-svn-id: http://tint2.googlecode.com/svn/trunk@375 121b4492-b84c-0410-8b4c-0d4edfb3f3cc
This commit is contained in:
parent
b8eb8a2335
commit
38ea47cc9e
3 changed files with 12 additions and 12 deletions
|
@ -58,6 +58,7 @@ void server_init_atoms ()
|
|||
server.atom._NET_WM_STATE_MAXIMIZED_VERT = XInternAtom (server.dsp, "_NET_WM_STATE_MAXIMIZED_VERT", False);
|
||||
server.atom._NET_WM_STATE_MAXIMIZED_HORZ = XInternAtom (server.dsp, "_NET_WM_STATE_MAXIMIZED_HORZ", False);
|
||||
server.atom._NET_WM_STATE_SHADED = XInternAtom (server.dsp, "_NET_WM_STATE_SHADED", False);
|
||||
server.atom._NET_WM_STATE_HIDDEN = XInternAtom (server.dsp, "_NET_WM_STATE_HIDDEN", False);
|
||||
server.atom._NET_WM_STATE_BELOW = XInternAtom (server.dsp, "_NET_WM_STATE_BELOW", False);
|
||||
server.atom._NET_WM_STATE_ABOVE = XInternAtom (server.dsp, "_NET_WM_STATE_ABOVE", False);
|
||||
server.atom._NET_WM_STATE_MODAL = XInternAtom (server.dsp, "_NET_WM_STATE_MODAL", False);
|
||||
|
|
|
@ -40,6 +40,7 @@ typedef struct Global_atom
|
|||
Atom _NET_WM_STATE_MAXIMIZED_VERT;
|
||||
Atom _NET_WM_STATE_MAXIMIZED_HORZ;
|
||||
Atom _NET_WM_STATE_SHADED;
|
||||
Atom _NET_WM_STATE_HIDDEN;
|
||||
Atom _NET_WM_STATE_BELOW;
|
||||
Atom _NET_WM_STATE_ABOVE;
|
||||
Atom _NET_WM_STATE_MODAL;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue