about summary refs log tree commit diff
path: root/xevents.c
diff options
context:
space:
mode:
authorokan <okan>2013-10-25 19:46:16 +0000
committerokan <okan>2013-10-25 19:46:16 +0000
commit6e17b41f566865629d3dd35a6a60e081e6e2b089 (patch)
tree936ef98f0d1f8a5c6293e010a40fc9059c24ab4e /xevents.c
parent6867821abefd761a840befcfee5a1f1f2fef9831 (diff)
downloadcwm-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.c4
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