[xorg-x11-server] Cherry-pick a fix for selection for TouchBegin from multiple clients

Adam Jackson ajax at fedoraproject.org
Fri Dec 14 19:30:37 UTC 2012


commit 2f360aa76df244b1cde23f5a9988d78fa7b81344
Author: Adam Jackson <ajax at redhat.com>
Date:   Fri Dec 14 14:29:06 2012 -0500

    Cherry-pick a fix for selection for TouchBegin from multiple clients
    
    From IRC:
    
    14:07 <Jasper> ajax, airlied: can we backport
    http://cgit.freedesktop.org/xorg/xserver/commit/?id=314776eb369ca2e438907795ae030dd743c281fc
    to the Fedora X server? It's causing some issues for GTK+ clients.
    14:07 <ajax> i don't see why not

 ...uplicate-TouchBegin-selection-with-virtua.patch |   49 ++++++++++++++++++++
 xorg-x11-server.spec                               |    7 ++-
 2 files changed, 55 insertions(+), 1 deletions(-)
---
diff --git a/0001-Touch-Fix-duplicate-TouchBegin-selection-with-virtua.patch b/0001-Touch-Fix-duplicate-TouchBegin-selection-with-virtua.patch
new file mode 100644
index 0000000..591a59a
--- /dev/null
+++ b/0001-Touch-Fix-duplicate-TouchBegin-selection-with-virtua.patch
@@ -0,0 +1,49 @@
+From 314776eb369ca2e438907795ae030dd743c281fc Mon Sep 17 00:00:00 2001
+From: Daniel Stone <daniel at 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 at fooishbar.org>
+Cc: Peter Hutterer <peter.hutterer at who-t.net>
+Cc: Chase Douglas <chase.douglas at ubuntu.com>
+Signed-off-by: Peter Hutterer <peter.hutterer at 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
+
diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec
index cea4d2d..09216c6 100644
--- a/xorg-x11-server.spec
+++ b/xorg-x11-server.spec
@@ -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 at redhat.com> 1.13.0-15
+- Cherry-pick a fix for selection for TouchBegin from multiple clients
+
 * Wed Dec 12 2012 Dave Airlie <airlied at redhat.com> 1.13.0-14
 - add events for autoconfig of gpus devices, allow usb devices to notify gnome
 


More information about the scm-commits mailing list