diff options
author | okan <okan> | 2013-10-25 19:46:16 +0000 |
---|---|---|
committer | okan <okan> | 2013-10-25 19:46:16 +0000 |
commit | 6e17b41f566865629d3dd35a6a60e081e6e2b089 (patch) | |
tree | 936ef98f0d1f8a5c6293e010a40fc9059c24ab4e /xevents.c | |
parent | 6867821abefd761a840befcfee5a1f1f2fef9831 (diff) | |
download | cwm-6e17b41f566865629d3dd35a6a60e081e6e2b089.tar.gz cwm-6e17b41f566865629d3dd35a6a60e081e6e2b089.tar.xz cwm-6e17b41f566865629d3dd35a6a60e081e6e2b089.zip |
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.
Diffstat (limited to 'xevents.c')
-rw-r--r-- | xevents.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/xevents.c b/xevents.c index 4b6ad60..e6247ab 100644 --- a/xevents.c +++ b/xevents.c @@ -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 |