mirror of
https://github.com/LIV2/amiberry.git
synced 2025-12-06 06:32:45 +00:00
bugfix: Alt-Tab did not release keys properly
This commit is contained in:
parent
7ecdc36722
commit
9af899fc94
@ -360,6 +360,10 @@ int keyhack (const int scancode, const int pressed, const int num)
|
||||
if (currprefs.alt_tab_release)
|
||||
{
|
||||
if (pressed && state[SDL_SCANCODE_LALT] && scancode == SDL_SCANCODE_TAB) {
|
||||
// Ensure we release Alt-Tab before we release capture
|
||||
inputdevice_translatekeycode(num, SDL_SCANCODE_TAB, 0, false);
|
||||
inputdevice_translatekeycode(num, SDL_SCANCODE_LALT, 0, false);
|
||||
|
||||
disablecapture();
|
||||
return -1;
|
||||
}
|
||||
@ -760,29 +764,19 @@ static void close_kb()
|
||||
|
||||
void release_keys(void)
|
||||
{
|
||||
// only run this if SDL2 version is 2.24 or higher
|
||||
#if SDL_VERSION_ATLEAST(2,0,24)
|
||||
SDL_ResetKeyboard();
|
||||
#else
|
||||
{
|
||||
const Uint8* state = SDL_GetKeyboardState(NULL);
|
||||
SDL_Event event;
|
||||
const Uint8* state = SDL_GetKeyboardState(NULL);
|
||||
SDL_Event event;
|
||||
|
||||
for (int i = 0; i < SDL_NUM_SCANCODES; ++i) {
|
||||
if (state[i]) {
|
||||
event.type = SDL_KEYUP;
|
||||
event.key.keysym.scancode = (SDL_Scancode)i;
|
||||
event.key.keysym.sym = SDL_GetKeyFromScancode((SDL_Scancode)i);
|
||||
event.key.keysym.mod = 0;
|
||||
event.key.state = SDL_RELEASED;
|
||||
SDL_PushEvent(&event);
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
for (int j = 0; j < MAX_INPUT_DEVICES; j++) {
|
||||
for (int i = 0; i < SDL_NUM_SCANCODES; i++) {
|
||||
my_kbd_handler(j, i, 0, true);
|
||||
for (int i = 0; i < SDL_NUM_SCANCODES; ++i) {
|
||||
if (state[i]) {
|
||||
event.type = SDL_KEYUP;
|
||||
event.key.keysym.scancode = (SDL_Scancode)i;
|
||||
event.key.keysym.sym = SDL_GetKeyFromScancode((SDL_Scancode)i);
|
||||
event.key.keysym.mod = 0;
|
||||
event.key.state = SDL_RELEASED;
|
||||
SDL_PushEvent(&event);
|
||||
|
||||
my_kbd_handler(0, i, 0, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user