commit fbc572a6a80239f91d2a1f83d1cd51fec7d05af2
parent b1f9f6666b033b27080f8b0574d232d43e4e2406
Author: Kris Maglione <jg@suckless.org>
Date: Thu, 1 Mar 2007 16:37:00 -0500
Fix flicker on keyboard focus change.
Diffstat:
1 file changed, 7 insertions(+), 3 deletions(-)
diff --git a/event.c b/event.c
@@ -298,12 +298,12 @@ expose(XEvent *e) {
static void
keypress(XEvent *e) {
+ XEvent me;
XKeyEvent *ev = &e->xkey;
+ Frame *f;
KeySym k = 0;
char buf[32];
int n;
- static Frame *f;
-
ev->state &= valid_mask;
if((f = frame_of_win(ev->window))) {
@@ -314,8 +314,12 @@ keypress(XEvent *e) {
return;
buf[n] = 0;
}
- else
+ else {
+ while(XCheckMaskEvent(blz.dpy, FocusChangeMask, &me))
+ if(me.xfocus.mode != NotifyGrab)
+ handler[me.type](&me);
kpress(blz.root, ev->state, (KeyCode) ev->keycode);
+ }
}
static void