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
|
static uint8_t
|
||||||
keyboard_do_break(uint16_t scan)
|
keyboard_do_break(uint16_t scan)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -269,6 +269,7 @@ extern void keyboard_poll_host(void);
|
|||||||
extern void keyboard_process(void);
|
extern void keyboard_process(void);
|
||||||
extern uint16_t keyboard_convert(int ch);
|
extern uint16_t keyboard_convert(int ch);
|
||||||
extern void keyboard_input(int down, uint16_t scan);
|
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 void keyboard_update_states(uint8_t cl, uint8_t nl, uint8_t sl);
|
||||||
extern uint8_t keyboard_get_shift(void);
|
extern uint8_t keyboard_get_shift(void);
|
||||||
extern void keyboard_get_states(uint8_t *cl, uint8_t *nl, uint8_t *sl);
|
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)
|
if (mouse_capture)
|
||||||
emit setMouseCapture(false);
|
emit setMouseCapture(false);
|
||||||
|
|
||||||
|
keyboard_all_up();
|
||||||
|
|
||||||
if (do_auto_pause && !dopause) {
|
if (do_auto_pause && !dopause) {
|
||||||
auto_paused = 1;
|
auto_paused = 1;
|
||||||
plat_pause(1);
|
plat_pause(1);
|
||||||
|
|||||||
Reference in New Issue
Block a user