summaryrefslogtreecommitdiff
path: root/dix/window.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2008-04-10 19:22:59 +0930
committerPeter Hutterer <peter@cs.unisa.edu.au>2008-04-10 19:22:59 +0930
commit04dff74ffdf727015e3721aae4ea13acc498cd1c (patch)
tree9003f77c5163bcf49f7b903527f7dcf906180388 /dix/window.c
parenta88386ee277d136caaaeec305f8753f23f9b6274 (diff)
dix: Rework Enter/Leave semaphore system.
Instead of a simple counter, use bits to keep track of which device is where etc. When device enters a window (or sets focus), the bit matching the device is set, when it leaves again, it is unset. If there are 0 bits set, then Leave/Enter/Focus events may be sent to the client. Same theory as before, but this should get around the insanity with Grab/Ungrab special cases. Those cases are basically untested though.
Diffstat (limited to 'dix/window.c')
-rw-r--r--dix/window.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/dix/window.c b/dix/window.c
index ee4c75649..d3160c903 100644
--- a/dix/window.c
+++ b/dix/window.c
@@ -366,6 +366,7 @@ CreateRootWindow(ScreenPtr pScreen)
WindowPtr pWin;
BoxRec box;
PixmapFormatRec *format;
+ FocusSemaphoresPtr sem;
pWin = (WindowPtr)xalloc(sizeof(WindowRec));
if (!pWin)
@@ -484,6 +485,7 @@ CreateRootWindow(ScreenPtr pScreen)
if (disableSaveUnders)
pScreen->saveUnderSupport = NotUseful;
+
return TRUE;
}