plan9port

fork of plan9port with libvec, libstr and libsdb
Log | Files | Refs | README | LICENSE

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:
MCONTRIBUTORS | 1+
Msrc/cmd/devdraw/devdraw.h | 2++
Msrc/cmd/devdraw/x11-itrans.c | 10+++++++++-
Msrc/cmd/devdraw/x11-srv.c | 6+++++-
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;