summary refs log tree commit diff
path: root/xevents.c
diff options
context:
space:
mode:
authorokan <okan>2008-05-19 12:56:58 +0000
committerokan <okan>2008-05-19 12:56:58 +0000
commit7957a470fd60e9d50057989595dd3b36010211e2 (patch)
tree0a86bd03260e141244fa387e1ae54089646bb5f1 /xevents.c
parenta94f4bbb7a5771fd20c300893f6331aba9f4d571 (diff)
downloadcwm-7957a470fd60e9d50057989595dd3b36010211e2.tar.gz
cwm-7957a470fd60e9d50057989595dd3b36010211e2.tar.xz
cwm-7957a470fd60e9d50057989595dd3b36010211e2.zip
finally implement keyboard binding for group toggling
idea for the
    "slightly-less-abhorrent-hack-but-a-hack-nonetheless-TM" from oga@

grab and ungrab the keyboard to get around some silly X apps that like
stealing events

ok oga@
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);
 }