diff --git a/src/guiengine/event_handler.cpp b/src/guiengine/event_handler.cpp index ed5813744..f39246a34 100644 --- a/src/guiengine/event_handler.cpp +++ b/src/guiengine/event_handler.cpp @@ -52,7 +52,7 @@ bool EventHandler::OnEvent (const SEvent &event) else { // FIXME : it's a bit unclean that all input events go trough the gui module - const bool blockPropagation = input_manager->input(event) && !ModalDialog::isADialogActive(); + const bool blockPropagation = input_manager->input(event); return blockPropagation; } diff --git a/src/input/input_manager.cpp b/src/input/input_manager.cpp index 57188a0ef..f78da8b72 100644 --- a/src/input/input_manager.cpp +++ b/src/input/input_manager.cpp @@ -40,8 +40,8 @@ #include "modes/world.hpp" #include "race/history.hpp" #include "race/race_manager.hpp" -#include "states_screens/options_screen.hpp" #include "states_screens/kart_selection.hpp" +#include "states_screens/options_screen.hpp" #include "states_screens/state_manager.hpp" InputManager *input_manager; @@ -506,8 +506,9 @@ bool InputManager::input(const SEvent& event) } #endif - // block events in all modes but initial menus (except in text boxes to allow typing) - return getDeviceList()->playerAssignMode() != NO_ASSIGN && !GUIEngine::isWithinATextBox; + // block events in all modes but initial menus (except in text boxes to allow typing, and exceptm in modal dialogs in-game) + return getDeviceList()->playerAssignMode() != NO_ASSIGN && !GUIEngine::isWithinATextBox && + (!GUIEngine::ModalDialog::isADialogActive() && StateManager::get()->isGameState()); } //-----------------------------------------------------------------------------