diff options
author | okan | 2017-12-29 18:50:43 +0000 |
---|---|---|
committer | okan | 2017-12-29 18:50:43 +0000 |
commit | 94fa8f6008663944358afaeb58a1217cf564a95c (patch) | |
tree | 4bdd8f886ccf464e30724d945a5843cbdfbc9bb7 /client.c | |
parent | 2752425282f3222e609d25dee2df4f4d666274d5 (diff) | |
download | cwm-94fa8f6008663944358afaeb58a1217cf564a95c.tar.gz |
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.
Diffstat (limited to 'client.c')
-rw-r--r-- | client.c | 24 |
1 files changed, 2 insertions, 22 deletions
@@ -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 <sys/types.h> @@ -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; |