From d74fdb6edbedbb184de9a8230e156460cb609aa6 Mon Sep 17 00:00:00 2001 From: Roger Peppe Date: Wed, 17 Jul 2013 17:55:09 +0100 Subject: cmd/devdraw: clear keyboard state on lost focus. See https://bitbucket.org/rsc/plan9port/issue/128/alt-button-sticks-in-acme-sometimes-after R=rsc https://codereview.appspot.com/11453043 --- CONTRIBUTORS | 1 + src/cmd/devdraw/x11-srv.c | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/CONTRIBUTORS b/CONTRIBUTORS index 73171a95..c49c9cdb 100644 --- a/CONTRIBUTORS +++ b/CONTRIBUTORS @@ -40,6 +40,7 @@ Peter Saveliev Richard Miller Rob Kroeger Rob Pike +Roger Peppe Russ Cox Sean McKean Shenghou Ma diff --git a/src/cmd/devdraw/x11-srv.c b/src/cmd/devdraw/x11-srv.c index 04ecabee..b9343913 100644 --- a/src/cmd/devdraw/x11-srv.c +++ b/src/cmd/devdraw/x11-srv.c @@ -619,6 +619,12 @@ runxevent(XEvent *xev) break; case FocusOut: + /* + * Some key combinations (e.g. Alt-Tab) can cause us + * to see the key down event without the key up event, + * so clear out the keyboard state when we lose the focus. + */ + kstate = 0; abortcompose(); break; -- cgit v1.2.3