xkb: Guard against SIGIO updates during PointerKeys.
In theory, an event coming in during GPE could reset our lastSlave, leading to rather interesting events lateron. Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Simon Thum <simon.thum@gmx.de> Reviewed-by: Daniel Stone <daniel@fooishbar.org>
This commit is contained in:
parent
108457dff8
commit
6c42c8c356
|
@ -64,11 +64,12 @@ XkbDDXFakeDeviceButton(DeviceIntPtr dev,Bool press,int button)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
events = InitEventList(GetMaximumEventsNum());
|
events = InitEventList(GetMaximumEventsNum());
|
||||||
|
OsBlockSignals();
|
||||||
nevents = GetPointerEvents(events, ptr,
|
nevents = GetPointerEvents(events, ptr,
|
||||||
press ? ButtonPress : ButtonRelease, button,
|
press ? ButtonPress : ButtonRelease, button,
|
||||||
0 /* flags */, 0 /* first */,
|
0 /* flags */, 0 /* first */,
|
||||||
0 /* num_val */, NULL);
|
0 /* num_val */, NULL);
|
||||||
|
OsReleaseSignals();
|
||||||
|
|
||||||
for (i = 0; i < nevents; i++)
|
for (i = 0; i < nevents; i++)
|
||||||
mieqProcessDeviceEvent(ptr, (InternalEvent*)events[i].event, NULL);
|
mieqProcessDeviceEvent(ptr, (InternalEvent*)events[i].event, NULL);
|
||||||
|
|
Loading…
Reference in New Issue