summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/tilesdl.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/tilesdl.cc')
-rw-r--r--crawl-ref/source/tilesdl.cc17
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