Xext: route event through master if required (XTestFakeInput)
This commit is contained in:
parent
fb784d99c5
commit
179a082c26
10
Xext/xtest.c
10
Xext/xtest.c
|
@ -471,7 +471,15 @@ ProcXTestFakeInput(client)
|
||||||
if (screenIsSaved == SCREEN_SAVER_ON)
|
if (screenIsSaved == SCREEN_SAVER_ON)
|
||||||
dixSaveScreens(serverClient, SCREEN_SAVER_OFF, ScreenSaverReset);
|
dixSaveScreens(serverClient, SCREEN_SAVER_OFF, ScreenSaverReset);
|
||||||
ev->u.keyButtonPointer.time = currentTime.milliseconds;
|
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;
|
return client->noClientException;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -263,7 +263,7 @@ ChangeDeviceID(DeviceIntPtr dev, xEvent* event)
|
||||||
* @param master The event after being copied
|
* @param master The event after being copied
|
||||||
* @param count Number of events in original.
|
* @param count Number of events in original.
|
||||||
*/
|
*/
|
||||||
static void
|
void
|
||||||
CopyGetMasterEvent(DeviceIntPtr mdev, xEvent* original,
|
CopyGetMasterEvent(DeviceIntPtr mdev, xEvent* original,
|
||||||
xEvent** master, int count)
|
xEvent** master, int count)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue