All held-down keys are now released when Alt-Tab'ing out

Only applies when Raw Input is in use on Windows
This commit is contained in:
Cacodemon345
2025-02-26 11:39:04 +06:00
parent 26074e9a9a
commit 168910b72f
3 changed files with 17 additions and 0 deletions

View File

@@ -332,6 +332,20 @@ keyboard_input(int down, uint16_t scan)
}
}
void
keyboard_all_up(void)
{
for (unsigned short i = 0; i < 0x200; i++) {
if (recv_key_ui[i]) {
recv_key_ui[i] = 0;
}
if (recv_key[i]) {
recv_key[i] = 0;
key_process(i, 0);
}
}
}
static uint8_t
keyboard_do_break(uint16_t scan)
{

View File

@@ -269,6 +269,7 @@ extern void keyboard_poll_host(void);
extern void keyboard_process(void);
extern uint16_t keyboard_convert(int ch);
extern void keyboard_input(int down, uint16_t scan);
extern void keyboard_all_up(void);
extern void keyboard_update_states(uint8_t cl, uint8_t nl, uint8_t sl);
extern uint8_t keyboard_get_shift(void);
extern void keyboard_get_states(uint8_t *cl, uint8_t *nl, uint8_t *sl);

View File

@@ -277,6 +277,8 @@ MainWindow::MainWindow(QWidget *parent)
if (mouse_capture)
emit setMouseCapture(false);
keyboard_all_up();
if (do_auto_pause && !dopause) {
auto_paused = 1;
plat_pause(1);