tdevdraw: do not interpret alt-tab as alt for compose - plan9port - [fork] Plan 9 from user space
HTML git clone git://src.adamsgaard.dk/plan9port
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit 4b58d457076fa1ee3d86ed31162a0721ebf44862
DIR parent 6135b41c7dbfdf5ac1840a1d1d4f20505e429278
HTML Author: Justin Davis <jrcd83@gmail.com>
Date: Wed, 28 Sep 2011 14:11:32 -0400
devdraw: do not interpret alt-tab as alt for compose
R=rsc
CC=plan9port.codebot
http://codereview.appspot.com/5132050
Diffstat:
M CONTRIBUTORS | 1 +
M src/cmd/devdraw/devdraw.h | 2 ++
M src/cmd/devdraw/x11-itrans.c | 10 +++++++++-
M src/cmd/devdraw/x11-srv.c | 6 +++++-
4 files changed, 17 insertions(+), 2 deletions(-)
---
DIR diff --git a/CONTRIBUTORS b/CONTRIBUTORS
t@@ -15,6 +15,7 @@ David Swasey <david.swasey@gmail.com>
Enrique Soriano <enrique.soriano@gmail.com>
Eoghan Sherry <ejsherry@gmail.com>
Fazlul Shahriar <fshahriar@gmail.com>
+Justin Davis <jrcd83@gmail.com>
J.R. Mauro <jrm8005@gmail.com>
Jani Lahtinen <jani.lahtinen8@gmail.com>
Jeff Sickel <jas@corpus-callosum.com>
DIR diff --git a/src/cmd/devdraw/devdraw.h b/src/cmd/devdraw/devdraw.h
t@@ -4,4 +4,6 @@ void _initdisplaymemimage(Memimage*);
int _latin1(Rune*, int);
int parsewinsize(char*, Rectangle*, int*);
int mouseswap(int);
+void abortcompose(void);
+
DIR diff --git a/src/cmd/devdraw/x11-itrans.c b/src/cmd/devdraw/x11-itrans.c
t@@ -137,12 +137,20 @@ __xtoplan9kbd(XEvent *e)
return k+0;
}
+int alting;
+
+void
+abortcompose(void)
+{
+ alting = 0;
+}
+
extern int _latin1(Rune*, int);
static Rune*
xtoplan9latin1(XEvent *e)
{
static Rune k[10];
- static int alting, nk;
+ static int nk;
int n;
int r;
DIR diff --git a/src/cmd/devdraw/x11-srv.c b/src/cmd/devdraw/x11-srv.c
t@@ -36,7 +36,7 @@
Button2MotionMask|\
Button3MotionMask)
-#define Mask MouseMask|ExposureMask|StructureNotifyMask|KeyPressMask|EnterWindowMask|LeaveWindowMask
+#define Mask MouseMask|ExposureMask|StructureNotifyMask|KeyPressMask|EnterWindowMask|LeaveWindowMask|FocusChangeMask
typedef struct Kbdbuf Kbdbuf;
typedef struct Mousebuf Mousebuf;
t@@ -549,6 +549,10 @@ runxevent(XEvent *xev)
matchkbd();
break;
+ case FocusOut:
+ abortcompose();
+ break;
+
case SelectionRequest:
_xselect(xev);
break;