summary refs log tree commit diff
path: root/xevents.c
diff options
context:
space:
mode:
Diffstat (limited to 'xevents.c')
-rw-r--r--xevents.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/xevents.c b/xevents.c
index f668961..ca3c0d9 100644
--- a/xevents.c
+++ b/xevents.c
@@ -408,6 +408,7 @@ xev_handle_keyrelease(struct xevent *xev, XEvent *ee)
 {
 	XKeyEvent *e = &ee->xkey;
 	struct screen_ctx *sc = screen_fromroot(e->root);
+	struct client_ctx *cc = client_current();
 	int keysym;
 
 	keysym = XKeycodeToKeysym(X_Dpy, e->keycode, 0);
@@ -422,6 +423,11 @@ xev_handle_keyrelease(struct xevent *xev, XEvent *ee)
 	 */
 	client_mtf(NULL);
 
+	if (cc != NULL) {
+		group_sticky_toggle_exit(cc);
+		XUngrabKeyboard(X_Dpy, CurrentTime);
+	}
+
 out:
 	xev_register(xev);
 }