tseems to correct lack of focus when coming back from being hidden. not strictly correct in multithreaded programs but let's see if anything breaks. - plan9port - [fork] Plan 9 from user space
 (HTM) git clone git://src.adamsgaard.dk/plan9port
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit 60efa1d2b90cbcfedcd93a988834fc595a5368bb
 (DIR) parent 7d0dbb314f77b79bb729162a59a6ea3d93807eb9
 (HTM) Author: rsc <devnull@localhost>
       Date:   Fri,  7 Jan 2005 18:44:21 +0000
       
       seems to correct lack of focus when
       coming back from being hidden.
       not strictly correct in multithreaded
       programs but let's see if anything breaks.
       
       Diffstat:
         M src/libdraw/x11-wsys.c              |      12 ++++++++++--
       
       1 file changed, 10 insertions(+), 2 deletions(-)
       ---
 (DIR) diff --git a/src/libdraw/x11-wsys.c b/src/libdraw/x11-wsys.c
       t@@ -10,9 +10,17 @@ drawtopwindow(void)
        {
                XMapRaised(_x.display, _x.drawable);
                XFlush(_x.display);
       -        XSetInputFocus(_x.display, _x.drawable, RevertToPointerRoot,
       +        /*
       +         * Should not be using kbdcon since we're not running
       +         * in the kbdproc, but this is necessary to make the keyboard
       +         * take focus if the window is hidden when drawtopwindow
       +         * is called.  Let's hope that XSetInputFocus is only a write 
       +         * on the fd, and so it's okay to do even though the kbdproc
       +         * is reading at the same time.
       +         */
       +        XSetInputFocus(_x.kbdcon, _x.drawable, RevertToPointerRoot,
                        CurrentTime);
       -        XFlush(_x.display);
       +        XFlush(_x.kbdcon);
        }
        
        void