SOURCES: xorg-xserver-server-xinerama-bug20557.patch (NEW) - bugfix for xin...

adamg adamg at pld-linux.org
Wed Mar 25 19:03:49 CET 2009


Author: adamg                        Date: Wed Mar 25 18:03:49 2009 GMT
Module: SOURCES                       Tag: HEAD
---- Log message:
- bugfix for xinerama related segfaults: https://bugs.freedesktop.org/show_bug.cgi?id=20557

---- Files affected:
SOURCES:
   xorg-xserver-server-xinerama-bug20557.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: SOURCES/xorg-xserver-server-xinerama-bug20557.patch
diff -u /dev/null SOURCES/xorg-xserver-server-xinerama-bug20557.patch:1.1
--- /dev/null	Wed Mar 25 19:03:50 2009
+++ SOURCES/xorg-xserver-server-xinerama-bug20557.patch	Wed Mar 25 19:03:44 2009
@@ -0,0 +1,46 @@
+From 24e682d0fcc98d7c3f63fa484cc28285df48b499 Mon Sep 17 00:00:00 2001
+From: Peter Hutterer <peter.hutterer at who-t.net>
+Date: Wed, 25 Mar 2009 13:08:27 +1000
+Subject: [PATCH] dix: ignore non-pointer events in XineramaCheckMotion (#20557)
+
+Note that deviceKeyButtonPointer and keyButtonPointer have the same wire
+layout, so we only need to check for event types.
+
+X.Org Bug 20557 <http://bugs.freedesktop.org/show_bug.cgi?id=20557>
+
+Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
+---
+ dix/events.c |   17 +++++++++++++++++
+ 1 files changed, 17 insertions(+), 0 deletions(-)
+
+diff --git a/dix/events.c b/dix/events.c
+index 6743cae..63b0674 100644
+--- a/dix/events.c
++++ b/dix/events.c
+@@ -625,6 +625,23 @@ XineramaCheckMotion(xEvent *xE, DeviceIntPtr pDev)
+ 
+     if (xE && !syncEvents.playingEvents)
+     {
++        /* GetPointerEvents() guarantees that pointer events have the correct
++           rootX/Y set already. */
++        switch(xE->u.u.type)
++        {
++            case ButtonPress:
++            case ButtonRelease:
++            case MotionNotify:
++                break;
++            default:
++                if (xE->u.u.type == DeviceButtonPress ||
++                        xE->u.u.type == DeviceButtonRelease ||
++                        xE->u.u.type == DeviceMotionNotify)
++                    break;
++                /* all other events return FALSE */
++                return FALSE;
++        }
++
+ 	/* Motion events entering DIX get translated to Screen 0
+ 	   coordinates.  Replayed events have already been
+ 	   translated since they've entered DIX before */
+-- 
+1.6.0.6
+
================================================================


More information about the pld-cvs-commit mailing list