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:
@@ -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)
|
||||
{
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user