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@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.