[PATCH 0/1] MR9847: winex11: Drop SCIM workaround.
SCIM is no longer under active development (the latest release was on July 31, 2017) and has been replaced by ibus and fcitx. Nevertheless, I investigated this issue using the latest SCIM release and confirmed that this workaround is no longer necessary. It appears to have been a SCIM bug that has been fixed. Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55849 -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9847
From: Byeongsik Jeon <bsjeon@hanmail.net> Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55849 --- dlls/winex11.drv/event.c | 32 +------------------------------- 1 file changed, 1 insertion(+), 31 deletions(-) diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c index fcec7676a64..fdb6b635898 100644 --- a/dlls/winex11.drv/event.c +++ b/dlls/winex11.drv/event.c @@ -501,37 +501,7 @@ BOOL X11DRV_ProcessEvents( DWORD mask ) } count++; - if (XFilterEvent( &event, None )) - { - /* - * SCIM on linux filters key events strangely. It does not filter the - * KeyPress events for these keys however it does filter the - * KeyRelease events. This causes wine to become very confused as - * to the keyboard state. - * - * We need to let those KeyRelease events be processed so that the - * keyboard state is correct. - */ - if (event.type == KeyRelease) - { - KeySym keysym = 0; - XKeyEvent *keyevent = &event.xkey; - - XLookupString(keyevent, NULL, 0, &keysym, NULL); - if (!(keysym == XK_Shift_L || - keysym == XK_Shift_R || - keysym == XK_Control_L || - keysym == XK_Control_R || - keysym == XK_Alt_R || - keysym == XK_Alt_L || - keysym == XK_Meta_R || - keysym == XK_Meta_L)) - continue; /* not a key we care about, ignore it */ - } - else - continue; /* filtered, ignore it */ - } - + if (XFilterEvent( &event, None )) continue; if (host_window_filter_event( &event, &prev_event )) continue; get_event_data( &event ); -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/9847
Thanks for looking into this. Did you also confirm that the workaround was necessary for you with older versions of SCIM? When looking into that bug I was unfortunately not able to do that. Also, it would probably be better to use `git revert` to revert the original commit that implemented the workaround. And then mention in the commit message that this has been fixed in SCIM (and include the bug link like you already did of course). Thanks! -- https://gitlab.winehq.org/wine/wine/-/merge_requests/9847#note_126349
participants (3)
-
Byeongsik Jeon -
Byeongsik Jeon (@bsjeon) -
Sven Baars (@sbaars)