I've removed the draft tag and the commit I was totally unsure of. Here it is for history: ``` commit d4210fa9164e752faf3179fd559969be5ddaeaeb Author: yuri_k7 <riyu12383(a)gmail.com> Date: Sat Aug 3 22:01:28 2024 +0200 server: Fix repeated key for no reason diff --git a/server/queue.c b/server/queue.c index 76a82dcf712..3d734d416b3 100644 --- a/server/queue.c +++ b/server/queue.c @@ -2434,11 +2434,10 @@ static int queue_keyboard_message( struct desktop *desktop, user_handle_t win, c } } - if (origin == IMO_HARDWARE) + if ((origin == IMO_HARDWARE) && (input->kbd.scan == desktop->key_repeat.input.kbd.scan)) { /* if the repeat key is released, stop auto-repeating */ - if (((input->kbd.flags & KEYEVENTF_KEYUP) && - (input->kbd.scan == desktop->key_repeat.input.kbd.scan))) + if (input->kbd.flags & KEYEVENTF_KEYUP) { stop_key_repeat( desktop ); } ``` As the mr is now it's a simple fix for the winewayland.drv alt-tabbing out behavior. There's still a issue because NtUserGetAsyncKeyboardState used in release_all_keys is limited to 256 vkeys, scan codes outside that set of values are not updated. -- https://gitlab.winehq.org/wine/wine/-/merge_requests/6199#note_91431