diff options
author | okan | 2013-10-25 19:46:16 +0000 |
---|---|---|
committer | okan | 2013-10-25 19:46:16 +0000 |
commit | db6a72259f627ccc7d656002c79d9420be7dfc3a (patch) | |
tree | a102d329073b05c6fb3eb770b02553c4bec1c493 /xevents.c | |
parent | 53bfa97286bc3ed63cc17f5ec3b8fee925316ce1 (diff) | |
download | cwm-db6a72259f627ccc7d656002c79d9420be7dfc3a.tar.gz |
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 | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -15,7 +15,7 @@ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * - * $OpenBSD: xevents.c,v 1.90 2013/07/15 23:51:59 okan Exp $ + * $OpenBSD: xevents.c,v 1.91 2013/10/25 19:46:16 okan Exp $ */ /* @@ -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 |