Handle synthetic UnmapNotify events *correctly*

Second try:

Turns out I messed up with XCB_EVENT_SENT() and had a "!" too much. The old code
already tried to cope with this, but forgot to actually unmap the window which
it just set to withdrawn state.

This time I tested the patch *again* and now I found even less bugs than on my
last try.

P.S.: I suck.

Signed-off-by: Uli Schlachter <psychon@znc.in>
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Julien Danjou 2010-01-06 09:42:05 +01:00
parent 9038c5165d
commit d09c3c02e8
1 changed files with 4 additions and 2 deletions

View File

@ -677,9 +677,11 @@ event_handle_unmapnotify(void *data __attribute__ ((unused)),
if((c = client_getbywin(ev->window)))
{
if(ev->event == xutil_screen_get(connection, c->phys_screen)->root
&& XCB_EVENT_SENT(ev)
&& window_state_get_reply(window_state_get_unchecked(c->window)) == XCB_WM_STATE_NORMAL)
&& XCB_EVENT_SENT(ev))
{
client_unmanage(c);
xcb_unmap_window(connection, ev->window);
}
}
else
for(int i = 0; i < globalconf.embedded.len; i++)