xserver: Branch 'mpx'
Peter Hutterer
whot at kemper.freedesktop.org
Tue Dec 18 23:16:35 PST 2007
include/xkbsrv.h | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
New commits:
commit eace88989c3b65d5c20e9f37ea9b23c7c8e19335
Author: Peter Hutterer <peter at cs.unisa.edu.au>
Date: Wed Dec 19 16:20:36 2007 +1030
include: never overwrite realInputProc with enqueueInputProc. Bug #13511
In some cases (triggered by a key repeat during a sync grab) XKB unwrapping
can overwrite the device's realInputProc with the enqueueInputProc. When the
grab is released and the events are replayed, we end up in an infinite loop.
Each event is replayed and in replaying pushed to the end of the queue again.
This fix is a hack only. It ensures that the realInputProc is never
overwritten with the enqueueInputProc.
This fixes Bug #13511 (https://bugs.freedesktop.org/show_bug.cgi?id=13511)
diff --git a/include/xkbsrv.h b/include/xkbsrv.h
index 4395c87..b9d7084 100644
--- a/include/xkbsrv.h
+++ b/include/xkbsrv.h
@@ -258,7 +258,8 @@ typedef struct
device->public.processInputProc = proc; \
oldprocs->processInputProc = \
oldprocs->realInputProc = device->public.realInputProc; \
- device->public.realInputProc = proc; \
+ if (proc != device->public.enqueueInputProc) \
+ device->public.realInputProc = proc; \
oldprocs->unwrapProc = device->unwrapProc; \
device->unwrapProc = unwrapproc;
More information about the xorg-commit
mailing list