mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-01-24 08:40:25 +01:00
Block signals while delivering XTest events (fixes bug 23100)
XTest uses the same event list as all input devices, and input devices use it at SIGIO time. This causes mass confusion when a SIGIO event occurs in the middle of XTest event processing. The master branch has a much different fix, using a separate input queue which reduces latency that may be caused by XTest event queuing; it's a 'nicer' fix in some ways, but this simple fix should solve the problem. Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Signed-off-by: Keith Packard <keithp@keithp.com>
This commit is contained in:
parent
76a1839b0a
commit
d8e48deb21
1 changed files with 1 additions and 1 deletions
|
|
@ -384,6 +384,7 @@ ProcXTestFakeInput(client)
|
|||
if (screenIsSaved == SCREEN_SAVER_ON)
|
||||
dixSaveScreens(serverClient, SCREEN_SAVER_OFF, ScreenSaverReset);
|
||||
|
||||
OsBlockSignals();
|
||||
GetEventList(&events);
|
||||
switch(type) {
|
||||
case MotionNotify:
|
||||
|
|
@ -402,7 +403,6 @@ ProcXTestFakeInput(client)
|
|||
break;
|
||||
}
|
||||
|
||||
OsBlockSignals();
|
||||
for (i = 0; i < nevents; i++)
|
||||
mieqEnqueue(dev, (events+i)->event);
|
||||
OsReleaseSignals();
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue