From: Rémi Bernon rbernon@codeweavers.com
XFilterEvent generates new ClientMessage events, used for XIM callbacks, as well as passes some KeyPress events through meant for XmbLookupString. Delaying the KeyPress events processing breaks the sequence on the next XFilterEvent call.
Based on a patch from Byeong-Sik Jeon bsjeon@hanmail.net. --- dlls/winex11.drv/event.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c index 37f146d3686..8d7bec84bd5 100644 --- a/dlls/winex11.drv/event.c +++ b/dlls/winex11.drv/event.c @@ -366,6 +366,13 @@ static enum event_merge_action merge_events( XEvent *prev, XEvent *next ) break; }
+ switch (next->type) + { + case KeyPress: + case KeyRelease: + return action | MERGE_HANDLE_NEW | MERGE_FREE_NEW; + } + return action; }