aboutsummaryrefslogtreecommitdiffstats
path: root/xevents.c
diff options
context:
space:
mode:
authorokan2013-10-25 19:46:16 +0000
committerokan2013-10-25 19:46:16 +0000
commitdb6a72259f627ccc7d656002c79d9420be7dfc3a (patch)
treea102d329073b05c6fb3eb770b02553c4bec1c493 /xevents.c
parent53bfa97286bc3ed63cc17f5ec3b8fee925316ce1 (diff)
downloadcwm-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 '')
-rw-r--r--xevents.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/xevents.c b/xevents.c
index 786ae0c..d92386b 100644
--- a/xevents.c
+++ b/xevents.c
@@ -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