diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2008-04-10 19:22:59 +0930 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2008-04-10 19:22:59 +0930 |
commit | 04dff74ffdf727015e3721aae4ea13acc498cd1c (patch) | |
tree | 9003f77c5163bcf49f7b903527f7dcf906180388 /dix/window.c | |
parent | a88386ee277d136caaaeec305f8753f23f9b6274 (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.c | 2 |
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; } |