A client_delete should behave differently depending on whether the

triggering event was unmap (with pending destroy) log destroy; we only
need to grab/ungrab the server lock, set WithdrawnState and
XRemoveFromSaveSet clients coming from an unmap event - doing so for
clients coming from destroy are already gone, hence we generate errors.
This commit is contained in:
okan
2013-10-25 19:46:16 +00:00
parent 6867821abe
commit 6e17b41f56
3 changed files with 12 additions and 10 deletions

View File

@@ -113,7 +113,7 @@ xev_handle_unmapnotify(XEvent *ee)
*/
if (XCheckTypedWindowEvent(X_Dpy, cc->win,
DestroyNotify, &ev) || e->send_event != 0) {
client_delete(cc);
client_delete(cc, 1);
} else
client_hide(cc);
}
@@ -127,7 +127,7 @@ xev_handle_destroynotify(XEvent *ee)
struct client_ctx *cc;
if ((cc = client_find(e->window)) != NULL)
client_delete(cc);
client_delete(cc, 0);
}
static void