From 94fa8f6008663944358afaeb58a1217cf564a95c Mon Sep 17 00:00:00 2001 From: okan Date: Fri, 29 Dec 2017 18:50:43 +0000 Subject: As done for buttonrelease, work specific un-cycling and un-highlighting actions into the keyrelease event, only performing what's actually needed for each; should result in much fewer events against keyreleases. No intended behaviour change. Additionally, like we do for group membership, grab the keyboard only when required for cycling. --- client.c | 24 ++---------------------- 1 file changed, 2 insertions(+), 22 deletions(-) (limited to 'client.c') diff --git a/client.c b/client.c index a9776b0..11eac06 100644 --- a/client.c +++ b/client.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: client.c,v 1.243 2017/12/29 12:54:54 okan Exp $ + * $OpenBSD: client.c,v 1.244 2017/12/29 18:50:43 okan Exp $ */ #include @@ -33,7 +33,6 @@ static struct client_ctx *client_next(struct client_ctx *); static struct client_ctx *client_prev(struct client_ctx *); -static void client_mtf(struct client_ctx *); static void client_placecalc(struct client_ctx *); static void client_wm_protocols(struct client_ctx *); static void client_mwm_hints(struct client_ctx *); @@ -683,10 +682,6 @@ client_cycle(struct screen_ctx *sc, int flags) struct client_ctx *newcc, *oldcc, *prevcc; int again = 1; - /* For X apps that ignore events. */ - XGrabKeyboard(X_Dpy, sc->rootwin, True, - GrabModeAsync, GrabModeAsync, CurrentTime); - if (TAILQ_EMPTY(&sc->clientq)) return; @@ -730,21 +725,6 @@ client_cycle(struct screen_ctx *sc, int flags) client_ptrwarp(newcc); } -void -client_cycle_leave(struct screen_ctx *sc) -{ - struct client_ctx *cc; - - sc->cycling = 0; - - if ((cc = client_current()) != NULL) { - client_mtf(cc); - cc->flags &= ~CLIENT_HIGHLIGHT; - client_draw_border(cc); - XUngrabKeyboard(X_Dpy, CurrentTime); - } -} - static struct client_ctx * client_next(struct client_ctx *cc) { @@ -817,7 +797,7 @@ client_placecalc(struct client_ctx *cc) } } -static void +void client_mtf(struct client_ctx *cc) { struct screen_ctx *sc = cc->sc; -- cgit v1.2.3-2-gb3c3