Merge branch 'master' into f18

This commit is contained in:
Adam Jackson 2012-12-14 14:31:06 -05:00
commit 5314e227e9
2 changed files with 55 additions and 1 deletions

View File

@ -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

View File

@ -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