Ignore all UnmapNotifies due to the root window

We got XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY on the root window, but we also have
XCB_EVENT_MASK_STRUCTURE_NOTIFY on the individual client windows. Since we are
reparenting our windows, we can safely ignore all UnmapNotifies that we get
through the root window.

This fixes a bug if there were any windows already present before awesome
started. Those were obviously already mapped which means that ReparentWindow
would cause an UnmapNotify for them on the root window. This commit makes us
ignore that UnmapNotify and thus not throwing away the window immediately again.

Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
Uli Schlachter 2010-08-09 13:30:46 +02:00
parent a89ca515f5
commit 0682499895
1 changed files with 4 additions and 1 deletions

View File

@ -630,7 +630,10 @@ event_handle_unmapnotify(xcb_unmap_notify_event_t *ev)
if((c = client_getbywin(ev->window))) if((c = client_getbywin(ev->window)))
{ {
client_unmanage(c); /* We got XCB_EVENT_MASK_SUBSTRUCTURE_NOTIFY on the root window.
* Ignore any UnmapNotifies we get due to that. */
if (ev->event == c->window)
client_unmanage(c);
} }
else else
for(int i = 0; i < globalconf.embedded.len; i++) for(int i = 0; i < globalconf.embedded.len; i++)