diff options
Diffstat (limited to 'crawl-ref/source/tilesdl.cc')
-rw-r--r-- | crawl-ref/source/tilesdl.cc | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/crawl-ref/source/tilesdl.cc b/crawl-ref/source/tilesdl.cc index 0db1d9fdf0..3383a13c9a 100644 --- a/crawl-ref/source/tilesdl.cc +++ b/crawl-ref/source/tilesdl.cc @@ -823,17 +823,18 @@ int TilesFramework::getch_ck() switch (event.type) { + case SDL_ACTIVEEVENT: + // When game gains focus back then set mod state clean + // to get rid of stupid Windows/SDL bug with Alt-Tab. + if (event.active.gain != 0) + { + SDL_SetModState(KMOD_NONE); + set_need_redraw(); + } + break; case SDL_KEYDOWN: m_key_mod |= _get_modifiers(event.key.keysym); key = _translate_keysym(event.key.keysym); - if (m_key_mod == MOD_ALT - && key_to_command(key, KMC_DEFAULT) == CMD_NO_CMD) - { - // If the Alt key is pressed and the command is invalid, - // try clearing the Alt key in case it got stuck in - // the stupid Windows/SDL bug with Alt-Tab. - m_key_mod &= ~MOD_ALT; - } m_region_tile->place_cursor(CURSOR_MOUSE, Region::NO_CURSOR); // If you hit a key, disable tooltips until the mouse |