xserver: Branch 'mpx' - 3 commits
Peter Hutterer
whot at kemper.freedesktop.org
Tue Apr 22 01:24:20 PDT 2008
Xext/xtest.c | 22 +++++++++++++++++-----
mi/mieq.c | 4 ++--
2 files changed, 19 insertions(+), 7 deletions(-)
New commits:
commit 179a082c26f9e562492ee2e59e7f44f949f39f9c
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date: Fri Apr 18 21:13:10 2008 +0930
Xext: route event through master if required (XTestFakeInput)
diff --git a/Xext/xtest.c b/Xext/xtest.c
index 721dacc..e11f358 100644
--- a/Xext/xtest.c
+++ b/Xext/xtest.c
@@ -471,7 +471,15 @@ ProcXTestFakeInput(client)
if (screenIsSaved == SCREEN_SAVER_ON)
dixSaveScreens(serverClient, SCREEN_SAVER_OFF, ScreenSaverReset);
ev->u.keyButtonPointer.time = currentTime.milliseconds;
- (*dev->public.processInputProc)(ev, dev, nev);
+ if (!dev->isMaster && dev->u.master)
+ { /* duplicate and route through master */
+ xEvent *master_event = NULL;
+ CopyGetMasterEvent(dev->u.master, ev, &master_event, nev);
+ (*dev->public.processInputProc)(ev, dev, nev);
+ (*dev->public.processInputProc)(master_event, dev->u.master, nev);
+ xfree(master_event);
+ } else
+ (*dev->public.processInputProc)(ev, dev, nev);
return client->noClientException;
}
diff --git a/mi/mieq.c b/mi/mieq.c
index cae5516..1c85030 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -263,7 +263,7 @@ ChangeDeviceID(DeviceIntPtr dev, xEvent* event)
* @param master The event after being copied
* @param count Number of events in original.
*/
-static void
+void
CopyGetMasterEvent(DeviceIntPtr mdev, xEvent* original,
xEvent** master, int count)
{
commit fb784d99c521823339bf00b70b9824f735d88875
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date: Fri Apr 18 20:57:42 2008 +0930
mi: fix typo in comment.
diff --git a/mi/mieq.c b/mi/mieq.c
index 2759d16..cae5516 100644
--- a/mi/mieq.c
+++ b/mi/mieq.c
@@ -333,7 +333,7 @@ mieqProcessInputEvents(void)
/* FIXME: Bad hack. The only event where we actually get multiple
* events at once is a DeviceMotionNotify followed by
- * DeviceValuators. For now it's save enough to just take the
+ * DeviceValuators. For now it's safe enough to just take the
* event directly or copy the bunch of events and pass in the
* copy. Eventually the interface for the processInputProc needs
* to be changed. (whot)
commit 8209fdbc7c7f2dd068b30ff184b5fbf00db78686
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date: Fri Apr 18 20:53:57 2008 +0930
Xext: Update sprite on fake input only for MDs and floating SDs.
diff --git a/Xext/xtest.c b/Xext/xtest.c
index 5f0b25e..721dacc 100644
--- a/Xext/xtest.c
+++ b/Xext/xtest.c
@@ -440,10 +440,14 @@ ProcXTestFakeInput(client)
ev->u.keyButtonPointer.rootY);
return client->noClientException;
}
- (*root->drawable.pScreen->SetCursorPosition)
- (dev, root->drawable.pScreen,
- ev->u.keyButtonPointer.rootX,
- ev->u.keyButtonPointer.rootY, FALSE);
+ /* Only update sprite for MDs and floating SDs */
+ if (dev->isMaster || (!dev->isMaster && !dev->u.master))
+ {
+ (*root->drawable.pScreen->SetCursorPosition)
+ (dev, root->drawable.pScreen,
+ ev->u.keyButtonPointer.rootX,
+ ev->u.keyButtonPointer.rootY, FALSE);
+ }
dev->lastx = ev->u.keyButtonPointer.rootX;
dev->lasty = ev->u.keyButtonPointer.rootY;
break;
More information about the xorg-commit
mailing list