diff options
author | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-04-30 12:57:42 +0930 |
---|---|---|
committer | Peter Hutterer <peter@cs.unisa.edu.au> | 2007-04-30 12:57:42 +0930 |
commit | 5e439109292e54b5c4d1a7bc7b6ac0e42ee285f7 (patch) | |
tree | 14e3ee811b3145b29bec73aca64e3060a731e9dd /dix/window.c | |
parent | f28eea0647f007c2e2415ecc6fceef46201faad4 (diff) |
Add GenericEvent extension to Xext.
This adds (unconditional) support for the GE extension. Anything from now on
that sends events in MPX will have to use the GE extension. No GE, no MPX
events. GE is not actually used yet from anywhere with this commit.
You will need to update x11proto, xextproto, libX11, libXext and xcb to the
matching xge branches. Things will _NOT_ work without the updated protocol
headers and libraries.
Diffstat (limited to 'dix/window.c')
-rw-r--r-- | dix/window.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/dix/window.c b/dix/window.c index 484693906..b49abdfe5 100644 --- a/dix/window.c +++ b/dix/window.c @@ -455,6 +455,7 @@ CreateRootWindow(ScreenPtr pScreen) #ifdef XINPUT pWin->optional->inputMasks = NULL; pWin->optional->deviceCursors = NULL; + pWin->optional->geMasks = NULL; #endif pWin->optional->access.perm = NULL; @@ -3700,6 +3701,9 @@ CheckWindowOptionalNeed (WindowPtr w) optional->access.ndeny != 0) return; + if (optional->geMasks != NULL) + return; + parentOptional = FindWindowWithOptional(w)->optional; if (optional->visual != parentOptional->visual) return; @@ -3746,6 +3750,19 @@ MakeWindowOptional (WindowPtr pWin) optional->inputMasks = NULL; #endif optional->deviceCursors = NULL; + + optional->geMasks = (GEEventMasksPtr)xalloc(sizeof(GEEventMasksRec)); + if (!optional->geMasks) + { + xfree(optional); + return FALSE; + } else { + int i; + optional->geMasks->geClients = 0; + for (i = 0; i < MAXEXTENSIONS; i++) + optional->geMasks->eventMasks[i] = 0; + } + optional->access.nperm = 0; optional->access.ndeny = 0; optional->access.perm = NULL; |