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_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_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_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_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_ABOVE = XInternAtom (server.dsp, "_NET_WM_STATE_ABOVE", False);
|
||||||
server.atom._NET_WM_STATE_MODAL = XInternAtom (server.dsp, "_NET_WM_STATE_MODAL", 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_VERT;
|
||||||
Atom _NET_WM_STATE_MAXIMIZED_HORZ;
|
Atom _NET_WM_STATE_MAXIMIZED_HORZ;
|
||||||
Atom _NET_WM_STATE_SHADED;
|
Atom _NET_WM_STATE_SHADED;
|
||||||
|
Atom _NET_WM_STATE_HIDDEN;
|
||||||
Atom _NET_WM_STATE_BELOW;
|
Atom _NET_WM_STATE_BELOW;
|
||||||
Atom _NET_WM_STATE_ABOVE;
|
Atom _NET_WM_STATE_ABOVE;
|
||||||
Atom _NET_WM_STATE_MODAL;
|
Atom _NET_WM_STATE_MODAL;
|
||||||
|
|
|
@ -146,20 +146,18 @@ int window_get_monitor (Window win)
|
||||||
|
|
||||||
int window_is_iconified (Window win)
|
int window_is_iconified (Window win)
|
||||||
{
|
{
|
||||||
if (IconicState == get_property32(win, server.atom.WM_STATE, server.atom.WM_STATE)) {
|
// EWMH specification : minimization of windows use _NET_WM_STATE_HIDDEN.
|
||||||
// openbox sets on shaded windows the IconicState, however we do not consider these windows iconified
|
// WM_STATE is not accurate for shaded window and in multi_desktop mode.
|
||||||
Atom *at;
|
Atom *at;
|
||||||
int count, i;
|
int count, i;
|
||||||
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_SHADED) {
|
if (at[i] == server.atom._NET_WM_STATE_HIDDEN) {
|
||||||
XFree(at);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
XFree(at);
|
XFree(at);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
XFree(at);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue