mirror of
https://gitlab.freedesktop.org/xorg/xserver.git
synced 2026-05-01 13:48:02 +02:00
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) (cherry picked from commiteace88989c) (cherry picked from commit50e80c3987)
This commit is contained in:
parent
102c012c20
commit
60144ac814
1 changed files with 2 additions and 1 deletions
|
|
@ -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;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue