URI: 
       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;