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
HTML git clone git://src.adamsgaard.dk/plan9port
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit 60efa1d2b90cbcfedcd93a988834fc595a5368bb
DIR parent 7d0dbb314f77b79bb729162a59a6ea3d93807eb9
HTML 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