summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Hutterer <peter.hutterer@who-t.net>2010-04-14 10:51:41 +1000
committerPeter Hutterer <peter.hutterer@who-t.net>2010-04-16 16:33:33 +1000
commit6c42c8c356be305dc7f3f92ad8d58675da8c2f07 (patch)
treef46c76f7aa8f533c130fdacdf6d5fe9dccee1c51
parent108457dff816569453a2d88cd72595fa7eb02479 (diff)
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>
-rw-r--r--xkb/ddxDevBtn.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/xkb/ddxDevBtn.c b/xkb/ddxDevBtn.c
index 3bee84b1e..b8a222d0b 100644
--- a/xkb/ddxDevBtn.c
+++ b/xkb/ddxDevBtn.c
@@ -64,11 +64,12 @@ XkbDDXFakeDeviceButton(DeviceIntPtr dev,Bool press,int button)
return;
events = InitEventList(GetMaximumEventsNum());
+ OsBlockSignals();
nevents = GetPointerEvents(events, ptr,
press ? ButtonPress : ButtonRelease, button,
0 /* flags */, 0 /* first */,
0 /* num_val */, NULL);
-
+ OsReleaseSignals();
for (i = 0; i < nevents; i++)
mieqProcessDeviceEvent(ptr, (InternalEvent*)events[i].event, NULL);