Merge branch 'master' into f18
This commit is contained in:
commit
5314e227e9
@ -0,0 +1,49 @@
|
||||
From 314776eb369ca2e438907795ae030dd743c281fc Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Stone <daniel@fooishbar.org>
|
||||
Date: Fri, 7 Sep 2012 18:30:23 +0100
|
||||
Subject: [PATCH] Touch: Fix duplicate TouchBegin selection with virtual
|
||||
devices
|
||||
|
||||
Given the following scenario:
|
||||
1) client A selects for TouchBegin on window W for device D
|
||||
2) client B selects for TouchBegin on window W for XIAllDevices
|
||||
3) client C selects for TouchBegin on window W with device E
|
||||
|
||||
Step 3 will fail with BadImplementation, because attempting to look up
|
||||
XIAllDevices or XIAllMasterDevices with dixLookupDevices doesn't work.
|
||||
This should succeed (or, if it was selecting for device D, fail with
|
||||
BadAccess as it would be a duplicate selection).
|
||||
|
||||
Fix this by performing the appropriate lookup for virtual devices.
|
||||
|
||||
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
|
||||
Cc: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
Cc: Chase Douglas <chase.douglas@ubuntu.com>
|
||||
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||
---
|
||||
Xi/xiselectev.c | 9 +++++++--
|
||||
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/Xi/xiselectev.c b/Xi/xiselectev.c
|
||||
index 0e45cb8..ab1b624 100644
|
||||
--- a/Xi/xiselectev.c
|
||||
+++ b/Xi/xiselectev.c
|
||||
@@ -180,8 +180,13 @@ ProcXISelectEvents(ClientPtr client)
|
||||
if (CLIENT_ID(iclient->resource) == client->index)
|
||||
continue;
|
||||
|
||||
- dixLookupDevice(&tmp, evmask->deviceid, serverClient,
|
||||
- DixReadAccess);
|
||||
+ if (evmask->deviceid == XIAllDevices)
|
||||
+ tmp = inputInfo.all_devices;
|
||||
+ else if (evmask->deviceid == XIAllMasterDevices)
|
||||
+ tmp = inputInfo.all_master_devices;
|
||||
+ else
|
||||
+ dixLookupDevice(&tmp, evmask->deviceid, serverClient,
|
||||
+ DixReadAccess);
|
||||
if (!tmp)
|
||||
return BadImplementation; /* this shouldn't happen */
|
||||
|
||||
--
|
||||
1.8.0.1
|
||||
|
@ -43,7 +43,7 @@
|
||||
Summary: X.Org X11 X server
|
||||
Name: xorg-x11-server
|
||||
Version: 1.13.0
|
||||
Release: 14%{?gitdate:.%{gitdate}}%{dist}
|
||||
Release: 15%{?gitdate:.%{gitdate}}%{dist}
|
||||
URL: http://www.x.org
|
||||
License: MIT
|
||||
Group: User Interface/X
|
||||
@ -146,6 +146,8 @@ Patch7066: 0001-xf86crtc-don-t-use-display-for-vx-vy-for-gpu-screens.patch
|
||||
# autoconfig: send events
|
||||
Patch7067: 0001-autoconfig-fixup-tell-changed-so-randr-clients-can-t.patch
|
||||
|
||||
Patch7068: 0001-Touch-Fix-duplicate-TouchBegin-selection-with-virtua.patch
|
||||
|
||||
%global moduledir %{_libdir}/xorg/modules
|
||||
%global drimoduledir %{_libdir}/dri
|
||||
%global sdkdir %{_includedir}/xorg
|
||||
@ -618,6 +620,9 @@ rm -rf $RPM_BUILD_ROOT
|
||||
%{xserver_source_dir}
|
||||
|
||||
%changelog
|
||||
* Fri Dec 14 2012 Adam Jackson <ajax@redhat.com> 1.13.0-15
|
||||
- Cherry-pick a fix for selection for TouchBegin from multiple clients
|
||||
|
||||
* Wed Dec 12 2012 Dave Airlie <airlied@redhat.com> 1.13.0-14
|
||||
- add events for autoconfig of gpus devices, allow usb devices to notify gnome
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user