diff -r 824a9837bbb3 -r 71f60bf6ebb7 sdlterm/src/sdlterm.cc --- a/sdlterm/src/sdlterm.cc Wed Jan 23 00:59:21 2013 +0100 +++ b/sdlterm/src/sdlterm.cc Wed Jan 23 21:49:40 2013 +0100 @@ -432,6 +432,7 @@ if (!event.key.unicode) break; // continue loop (unknown key) } + event.key.mod = _translate_mod(sdl_event.key.keysym.mod); event_ready = true; break; } @@ -530,6 +531,17 @@ } +int Terminal::_translate_mod(SDLMod mod) +{ + int res = 0; + if (mod & KMOD_SHIFT) res |= KeyMod::SHIFT; + if (mod & KMOD_ALT) res |= KeyMod::ALT; + if (mod & KMOD_CTRL) res |= KeyMod::CTRL; + if (mod & KMOD_META) res |= KeyMod::META; + return res; +} + + Uint32 Terminal::_wait_event_callback(Uint32 interval, void *param) { SDL_Event event;