Peter Hutterer schrieb:
> On Tue, Jul 14, 2009 at 01:51:16PM +0200, Pierre Willenbrock wrote:
>> This fixes pointer warping when using a scaled pointer input device(e.g.
>> synaptics).
>>
>> By the way, having the dev->u.master check only in the "we have no
>> handler" branch looks strange.
> 
> right, this should be in both of course. Care to send me a patch?
> 
[patch snipped]
> 
> ACK, can you please resend as a git-formatted patch? git am didn't like this
> one.

Both patches in git-format-patch format attached.

Regards,
  Pierre
>From b765ceed81974c1ce2c54cca270689948452b2bd Mon Sep 17 00:00:00 2001
From: Pierre Willenbrock <[email protected]>
Date: Tue, 14 Jul 2009 13:42:19 +0200
Subject: [PATCH 1/2] Always update u.lastSlave

---
 mi/mieq.c |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/mi/mieq.c b/mi/mieq.c
index 0f07b16..f050115 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -390,17 +390,17 @@ mieqProcessDeviceEvent(DeviceIntPtr dev,
     else {
         master = CopyGetMasterEvent(dev, event, masterEvents);
 
+        if (master)
+            master->u.lastSlave = dev;
+
         /* If someone's registered a custom event handler, let them
          * steal it. */
         if (handler)
         {
             handler(DequeueScreen(dev)->myNum, event, dev);
             if (master)
-            {
-                master->u.lastSlave = dev;
                 handler(DequeueScreen(master)->myNum,
                         (InternalEvent*)masterEvents->event, master);
-            }
         } else
         {
             /* process slave first, then master */
-- 
1.6.3.1

>From 2ab51638124bc53cf41cce2c05b1bbe48b06ea1c Mon Sep 17 00:00:00 2001
From: Pierre Willenbrock <[email protected]>
Date: Thu, 16 Jul 2009 12:12:48 +0200
Subject: [PATCH 2/2] Check dev->u.master if there is a custom event handler, too

---
 mi/mieq.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/mi/mieq.c b/mi/mieq.c
index f050115..a17b07d 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -398,7 +398,9 @@ mieqProcessDeviceEvent(DeviceIntPtr dev,
         if (handler)
         {
             handler(DequeueScreen(dev)->myNum, event, dev);
-            if (master)
+            /* Check for the SD's master in case the device got detached
+             * during event processing */
+            if (master && dev->u.master)
                 handler(DequeueScreen(master)->myNum,
                         (InternalEvent*)masterEvents->event, master);
         } else
-- 
1.6.3.1

_______________________________________________
xorg-devel mailing list
[email protected]
http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to