Ignore X11 errors caused by ReparentWindow / ChangeProperty on already destroyed windows

These errors can happen because a DestroyWindow request by a client will
trigger an UnmapNotify, then a DestroyNotify. We cannot distinguish this
UnmapNotify from an UnmapNotify not followed by a DestroyNotify, so we just try
to send the ReparentWindow / ChangeProperty and ignore the errors, if any.
This commit is contained in:
Michael Stapelberg
2011-07-10 23:44:13 +02:00
parent 48f5166daf
commit 05e39c1c48
5 changed files with 42 additions and 8 deletions

View File

@ -70,7 +70,9 @@ static void xcb_check_cb(EV_P_ ev_check *w, int revents) {
while ((event = xcb_poll_for_event(conn)) != NULL) {
if (event->response_type == 0) {
ELOG("X11 Error received! sequence %x\n", event->sequence);
if (event_is_ignored(event->sequence, 0))
DLOG("Expected X11 Error received for sequence %x\n", event->sequence);
else ELOG("X11 Error received! sequence %x\n", event->sequence);
continue;
}