Fix #1736: on GNU/Linux, a hotkey can trigger multiple commands
SDL_TEXTINPUT events aren't generated on Windows when Alt is held down. Let's ensure that the behavior is the same on all platforms.
This commit is contained in:
parent
6ce6c89b70
commit
f80bc42621
1 changed files with 9 additions and 0 deletions
|
@ -487,6 +487,15 @@ void pump()
|
|||
events.erase(first_draw_event + 1, events.end());
|
||||
}
|
||||
|
||||
if(SDL_GetModState() & KMOD_ALT) {
|
||||
// Remove text input events, to match the behavior on Windows
|
||||
// See https://github.com/wesnoth/wesnoth/issues/1736
|
||||
events.erase(
|
||||
std::remove_if(events.begin(), events.end(), [](const SDL_Event& e) { return e.type == SDL_TEXTINPUT; }),
|
||||
events.end()
|
||||
);
|
||||
}
|
||||
|
||||
ev_end = events.end();
|
||||
|
||||
for(ev_it = events.begin(); ev_it != ev_end; ++ev_it) {
|
||||
|
|
Loading…
Add table
Reference in a new issue