Commit Diff


commit - 6135b41c7dbfdf5ac1840a1d1d4f20505e429278
commit + 4b58d457076fa1ee3d86ed31162a0721ebf44862
blob - 8d615a5adba2bc19a80ce276023bc84c23f7c70f
blob + 87be2fa59f79e4abb559557dd462b752407aa544
--- CONTRIBUTORS
+++ 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>
blob - 074cf0d7666530039402888dc8fdab233481828e
blob + 7abf212ef51443490c353f4494ecf8673e01e78a
--- src/cmd/devdraw/devdraw.h
+++ 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);
 
+
blob - ff127c040b20727e16f2e786295863bf71f909c3
blob + 7a4df248e26461a1def2d6f8b59557c54ccd27d4
--- src/cmd/devdraw/x11-itrans.c
+++ src/cmd/devdraw/x11-itrans.c
@@ -135,6 +135,14 @@ __xtoplan9kbd(XEvent *e)
 	}
 
 	return k+0;
+}
+
+int alting;
+
+void
+abortcompose(void)
+{
+	alting = 0;
 }
 
 extern int _latin1(Rune*, int);
@@ -142,7 +150,7 @@ static Rune*
 xtoplan9latin1(XEvent *e)
 {
 	static Rune k[10];
-	static int alting, nk;
+	static int nk;
 	int n;
 	int r;
 
blob - 2035a068178a41f431163d6cdfb2a6dd991782a2
blob + 5a4be7053b2eb93b100e89a6a6d77a43ff089f27
--- src/cmd/devdraw/x11-srv.c
+++ 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;
@@ -547,6 +547,10 @@ runxevent(XEvent *xev)
 		if(kbd.ri == kbd.wi)
 			kbd.stall = 1;
 		matchkbd();
+		break;
+	
+	case FocusOut:
+		abortcompose();
 		break;
 	
 	case SelectionRequest: