aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoger Peppe <rogpeppe@gmail.com>2013-07-17 17:55:09 +0100
committerRoger Peppe <rogpeppe@gmail.com>2013-07-17 17:55:09 +0100
commitd74fdb6edbedbb184de9a8230e156460cb609aa6 (patch)
tree0c8fcad4bf60625a0f1bdbdad06960051862c187
parent3d31240bfdaee03aff28103b530ff593e9ddbbc5 (diff)
downloadplan9port-d74fdb6edbedbb184de9a8230e156460cb609aa6.tar.gz
plan9port-d74fdb6edbedbb184de9a8230e156460cb609aa6.tar.bz2
plan9port-d74fdb6edbedbb184de9a8230e156460cb609aa6.zip
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
-rw-r--r--CONTRIBUTORS1
-rw-r--r--src/cmd/devdraw/x11-srv.c6
2 files changed, 7 insertions, 0 deletions
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
index 73171a95..c49c9cdb 100644
--- a/CONTRIBUTORS
+++ b/CONTRIBUTORS
@@ -40,6 +40,7 @@ Peter Saveliev <svinota.saveliev@gmail.com>
Richard Miller <millerresearch@gmail.com>
Rob Kroeger <robkroeger@gmail.com>
Rob Pike <robpike@gmail.com>
+Roger Peppe <rogpeppe@gmail.com>
Russ Cox <rsc@swtch.com>
Sean McKean <smckean83@gmail.com>
Shenghou Ma <minux.ma@gmail.com>
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;