Fixed that, when you brought up a dialog asking you to type text by pressing a button with the spacebar, a space was added into the text box
git-svn-id: svn+ssh://svn.code.sf.net/p/supertuxkart/code/main/branches/irrlicht@4188 178a84e3-b1eb-0310-8ba1-8eac791a3b58
This commit is contained in:
parent
e4c8dede5c
commit
26d1917d31
@ -389,7 +389,7 @@ void InputManager::dispatchInput(Input::InputType type, int deviceID, int btnID,
|
|||||||
*/
|
*/
|
||||||
EventPropagation InputManager::input(const SEvent& event)
|
EventPropagation InputManager::input(const SEvent& event)
|
||||||
{
|
{
|
||||||
if(event.EventType == EET_JOYSTICK_INPUT_EVENT)
|
if (event.EventType == EET_JOYSTICK_INPUT_EVENT)
|
||||||
{
|
{
|
||||||
// Axes - FIXME, instead of checking all of them, ask the bindings which ones to poll
|
// Axes - FIXME, instead of checking all of them, ask the bindings which ones to poll
|
||||||
for (int axis_id=0; axis_id<SEvent::SJoystickEvent::NUMBER_OF_AXES ; axis_id++)
|
for (int axis_id=0; axis_id<SEvent::SJoystickEvent::NUMBER_OF_AXES ; axis_id++)
|
||||||
@ -470,6 +470,8 @@ EventPropagation InputManager::input(const SEvent& event)
|
|||||||
return EVENT_LET;
|
return EVENT_LET;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const bool wasInTextBox = GUIEngine::isWithinATextBox();
|
||||||
|
|
||||||
dispatchInput(Input::IT_KEYBOARD, 0, key,
|
dispatchInput(Input::IT_KEYBOARD, 0, key,
|
||||||
// FIXME: not sure why this happens: with plib the unicode
|
// FIXME: not sure why this happens: with plib the unicode
|
||||||
// value is 0. Since all values defined in user_config
|
// value is 0. Since all values defined in user_config
|
||||||
@ -481,6 +483,12 @@ EventPropagation InputManager::input(const SEvent& event)
|
|||||||
// works.
|
// works.
|
||||||
0, // FIXME: was ev.key.keysym.unicode,
|
0, // FIXME: was ev.key.keysym.unicode,
|
||||||
Input::MAX_VALUE);
|
Input::MAX_VALUE);
|
||||||
|
|
||||||
|
// if this action took us into a text box, don't let event continue (FIXME not the cleanest solution)
|
||||||
|
if (!wasInTextBox && GUIEngine::isWithinATextBox())
|
||||||
|
{
|
||||||
|
return EVENT_BLOCK;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -514,7 +522,7 @@ EventPropagation InputManager::input(const SEvent& event)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// block events in all modes but initial menus (except in text boxes to allow typing, and exceptm in modal dialogs in-game)
|
// block events in all modes but initial menus (except in text boxes to allow typing, and except in modal dialogs in-game)
|
||||||
if (getDeviceList()->playerAssignMode() != NO_ASSIGN && !GUIEngine::isWithinATextBox() &&
|
if (getDeviceList()->playerAssignMode() != NO_ASSIGN && !GUIEngine::isWithinATextBox() &&
|
||||||
(!GUIEngine::ModalDialog::isADialogActive() && StateManager::get()->getGameState() == GUIEngine::GAME))
|
(!GUIEngine::ModalDialog::isADialogActive() && StateManager::get()->getGameState() == GUIEngine::GAME))
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user