summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--client.c4
-rw-r--r--kbfunc.c10
2 files changed, 6 insertions, 8 deletions
diff --git a/client.c b/client.c
index ff492de..f30910a 100644
--- a/client.c
+++ b/client.c
@@ -659,6 +659,10 @@ client_cycle(struct screen_ctx *sc, int flags)
 	struct client_ctx	*newcc, *oldcc;
 	int			 again = 1;
 
+	/* For X apps that ignore events. */
+	XGrabKeyboard(X_Dpy, sc->rootwin, True,
+	    GrabModeAsync, GrabModeAsync, CurrentTime);
+
 	if (TAILQ_EMPTY(&sc->clientq))
 		return;
 
diff --git a/kbfunc.c b/kbfunc.c
index 8ff230d..8d220a6 100644
--- a/kbfunc.c
+++ b/kbfunc.c
@@ -219,13 +219,7 @@ kbfunc_menu_group(struct client_ctx *cc, union arg *arg)
 void
 kbfunc_client_cycle(struct client_ctx *cc, union arg *arg)
 {
-	struct screen_ctx	*sc = cc->sc;
-
-	/* XXX for X apps that ignore events */
-	XGrabKeyboard(X_Dpy, sc->rootwin, True,
-	    GrabModeAsync, GrabModeAsync, CurrentTime);
-
-	client_cycle(sc, arg->i);
+	client_cycle(cc->sc, arg->i);
 }
 
 void
@@ -464,7 +458,7 @@ void
 kbfunc_client_grouptoggle(struct client_ctx *cc, union arg *arg)
 {
 	if (arg->i == 0) {
-		/* XXX for stupid X apps like xpdf and gvim */
+		/* For X apps that steal events. */
 		XGrabKeyboard(X_Dpy, cc->win, True,
 		    GrabModeAsync, GrabModeAsync, CurrentTime);
 	}