diff options
Diffstat (limited to 'x11-base/xorg-server/files/1.7.3.901-0001-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch')
-rw-r--r-- | x11-base/xorg-server/files/1.7.3.901-0001-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch | 83 |
1 files changed, 0 insertions, 83 deletions
diff --git a/x11-base/xorg-server/files/1.7.3.901-0001-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch b/x11-base/xorg-server/files/1.7.3.901-0001-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch deleted file mode 100644 index 82f4f50ebb1c..000000000000 --- a/x11-base/xorg-server/files/1.7.3.901-0001-dix-if-owner-events-is-true-for-passive-grabs-add-th.patch +++ /dev/null @@ -1,83 +0,0 @@ -From 873ef3430e92b0756c0dbe5033f6aec38a20d6ad Mon Sep 17 00:00:00 2001 -From: Peter Hutterer <peter.hutterer@who-t.net> -Date: Wed, 16 Dec 2009 13:43:22 +1000 -Subject: [PATCH] dix: if owner-events is true for passive grabs, add the window mask (#25400) - -A client requesting a GrabModeSync button grab, owner-events true, with only -the ButtonRelease mask set would never receive the press event even if the -grab window had the ButtonPress mask set. - -The protocol requires that if owner-events is true, then the delivery mask -is the combination of the grab mask + the window event mask. - -X.Org Bug 25400 <http://bugs.freedesktop.org/show_bug.cgi?id=25400> - -Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> ---- - dix/events.c | 36 ++++++++++++++++++++++++++++++++++++ - 1 files changed, 36 insertions(+), 0 deletions(-) - -diff --git a/dix/events.c b/dix/events.c -index 7e0867c..12b12a8 100644 ---- a/dix/events.c -+++ b/dix/events.c -@@ -3590,6 +3590,8 @@ CheckPassiveGrabsOnWindow( - xE = &core; - count = 1; - mask = grab->eventMask; -+ if (grab->ownerEvents) -+ mask |= pWin->eventMask; - } else if (match & XI2_MATCH) - { - rc = EventToXI2((InternalEvent*)event, &xE); -@@ -3611,6 +3613,24 @@ CheckPassiveGrabsOnWindow( - mask = grab->xi2mask[device->id][((xGenericEvent*)xE)->evtype/8]; - else if (event->type == XI_Enter || event->type == XI_FocusIn) - mask = grab->xi2mask[device->id][event->type/8]; -+ -+ if (grab->ownerEvents && wOtherInputMasks(grab->window)) -+ { -+ InputClientsPtr icp = -+ wOtherInputMasks(grab->window)->inputClients; -+ -+ while(icp) -+ { -+ if (rClient(icp) == rClient(grab)) -+ { -+ int evtype = (xE) ? ((xGenericEvent*)xE)->evtype : event->type; -+ mask |= icp->xi2mask[device->id][evtype/8]; -+ break; -+ } -+ -+ icp = icp->next; -+ } -+ } - } else - { - rc = EventToXI((InternalEvent*)event, &xE, &count); -@@ -3622,6 +3642,22 @@ CheckPassiveGrabsOnWindow( - continue; - } - mask = grab->eventMask; -+ if (grab->ownerEvents && wOtherInputMasks(grab->window)) -+ { -+ InputClientsPtr icp = -+ wOtherInputMasks(grab->window)->inputClients; -+ -+ while(icp) -+ { -+ if (rClient(icp) == rClient(grab)) -+ { -+ mask |= icp->mask[device->id]; -+ break; -+ } -+ -+ icp = icp->next; -+ } -+ } - } - - (*grabinfo->ActivateGrab)(device, grab, currentTime, TRUE); --- -1.6.5.2 - |