Xext: route event through master if required (XTestFakeInput)
This commit is contained in:
@@ -471,6 +471,14 @@ 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;
|
||||||
|
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);
|
(*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)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user