[PATCH v13 0/1] MR6199: winewayland.drv: Fix alt-tabbing out opening the alt key menu
Fix the wayland side of https://bugs.winehq.org/show_bug.cgi?id=55336 ### ~~Exit menu key by default:~~ That's the actual behavior, any non-special key will exit the menu key, and be sent to the client. I was also wondering if we should add `menu_sys_key = f10_key = 0;` when receiving a `WM_ACTIVATE` in `win32u/defwnd.c`'s `default_window_proc` but I guess not ? ### ~~Fix repeated key for no reason:~~ For some reason when ALT is pressed, it is spammed and thus spams SYS_COMMAND. This fix that, but I don't know what I am doing here. I don't see any repeating key spamming with winex11 but I could be wrong. However alt/SYS_COMMAND should not be repeated. That wasn't happening with winex11.drv. ### Fix release_all_keys modifier filtering: That was the main reason why alt-tab leads to the menu key, NtUserGetAsyncKeyboardState also uses left and right system keys. -- v13: winewayland: Fix release_all_keys's modifier filtering. https://gitlab.winehq.org/wine/wine/-/merge_requests/6199
From: Yuri Hérouard <yuri.herouard(a)gmail.com> --- dlls/winewayland.drv/wayland_keyboard.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/dlls/winewayland.drv/wayland_keyboard.c b/dlls/winewayland.drv/wayland_keyboard.c index 39b42231b00..af916c1d94c 100644 --- a/dlls/winewayland.drv/wayland_keyboard.c +++ b/dlls/winewayland.drv/wayland_keyboard.c @@ -629,8 +629,8 @@ static void release_all_keys(HWND hwnd) { /* Skip mouse buttons. */ if (vkey < 7 && vkey != VK_CANCEL) continue; - /* Skip left/right-agnostic modifier vkeys. */ - if (vkey == VK_SHIFT || vkey == VK_CONTROL || vkey == VK_MENU) continue; + /* Skip modifier vkeys. */ + if (vkey == VK_SHIFT || vkey == VK_CONTROL || vkey == VK_MENU || (vkey >= VK_LSHIFT && vkey <= VK_RMENU)) continue; if (state[vkey] & 0x80) { -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/6199
participants (1)
-
Yuri Hérouard