commit 4b58d457076fa1ee3d86ed31162a0721ebf44862
parent 6135b41c7dbfdf5ac1840a1d1d4f20505e429278
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:
4 files changed, 17 insertions(+), 2 deletions(-)
diff --git a/CONTRIBUTORS b/CONTRIBUTORS
@@ -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>
diff --git a/src/cmd/devdraw/devdraw.h b/src/cmd/devdraw/devdraw.h
@@ -4,4 +4,6 @@ void _initdisplaymemimage(Memimage*);
int _latin1(Rune*, int);
int parsewinsize(char*, Rectangle*, int*);
int mouseswap(int);
+void abortcompose(void);
+
diff --git a/src/cmd/devdraw/x11-itrans.c b/src/cmd/devdraw/x11-itrans.c
@@ -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;
diff --git a/src/cmd/devdraw/x11-srv.c b/src/cmd/devdraw/x11-srv.c
@@ -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;
@@ -549,6 +549,10 @@ runxevent(XEvent *xev)
matchkbd();
break;
+ case FocusOut:
+ abortcompose();
+ break;
+
case SelectionRequest:
_xselect(xev);
break;