diff options
author | Peter Hutterer <peter.hutterer@who-t.net> | 2012-10-30 12:44:08 +1000 |
---|---|---|
committer | Peter Hutterer <peter.hutterer@who-t.net> | 2013-01-09 12:33:36 +1000 |
commit | f59499b5d05fde83813709e9848152951592120d (patch) | |
tree | 40e847c4aeef9d58c0d71a7c8ab78bbf7a1ad72a /Xi | |
parent | 9ad0fdb135a1c336771aee1f6eab75a6ad874aff (diff) |
dix: add resource type to touch listeners
Instead of guessing what resource type the listener is and what property to
retrieve, store the resource type in the listener directly.
Breaks XIT test cases:
TouchGrabTestMultipleTaps.PassiveGrabPointerEmulationMultipleTouchesFastSuccession
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=56557
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Chase Douglas <chase.douglas@ubuntu.com>
Diffstat (limited to 'Xi')
-rw-r--r-- | Xi/exevents.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/Xi/exevents.c b/Xi/exevents.c index 22bb5639a..74f3610cc 100644 --- a/Xi/exevents.c +++ b/Xi/exevents.c @@ -1305,13 +1305,9 @@ RetrieveTouchDeliveryData(DeviceIntPtr dev, TouchPointInfoPtr ti, *mask = (*grab)->xi2mask; } else { - if (listener->level == CORE) - rc = dixLookupWindow(win, listener->listener, - serverClient, DixSendAccess); - else - rc = dixLookupResourceByType((pointer *) win, listener->listener, - RT_INPUTCLIENT, - serverClient, DixSendAccess); + rc = dixLookupResourceByType((pointer *) win, listener->listener, + listener->resource_type, + serverClient, DixSendAccess); if (rc != Success) return FALSE; @@ -1452,6 +1448,7 @@ DeliverTouchEmulatedEvent(DeviceIntPtr dev, TouchPointInfoPtr ti, l = &ti->listeners[ti->num_listeners - 1]; l->listener = devgrab->resource; l->grab = devgrab; + //l->resource_type = RT_NONE; if (devgrab->grabtype != XI2 || devgrab->type != XI_TouchBegin) l->type = LISTENER_POINTER_GRAB; |