summaryrefslogtreecommitdiff
path: root/dix/window.c
diff options
context:
space:
mode:
authorPeter Hutterer <peter@cs.unisa.edu.au>2007-04-30 12:57:42 +0930
committerPeter Hutterer <peter@cs.unisa.edu.au>2007-04-30 12:57:42 +0930
commit5e439109292e54b5c4d1a7bc7b6ac0e42ee285f7 (patch)
tree14e3ee811b3145b29bec73aca64e3060a731e9dd /dix/window.c
parentf28eea0647f007c2e2415ecc6fceef46201faad4 (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.c17
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;