diff --git a/data/gui/press_a_key_dialog.stkgui b/data/gui/press_a_key_dialog.stkgui
index 290772370..fa74fa2ff 100644
--- a/data/gui/press_a_key_dialog.stkgui
+++ b/data/gui/press_a_key_dialog.stkgui
@@ -8,6 +8,8 @@
+
+
diff --git a/src/config/device_config.cpp b/src/config/device_config.cpp
index 488550389..96a671899 100644
--- a/src/config/device_config.cpp
+++ b/src/config/device_config.cpp
@@ -83,6 +83,10 @@ irr::core::stringw DeviceConfig::getMappingIdString (const PlayerAction action)
returnString += id;
break;
+ case Input::IT_NONE:
+ returnString += "none";
+ break;
+
default:
assert(false);
returnString += type;
diff --git a/src/states_screens/dialogs/press_a_key_dialog.cpp b/src/states_screens/dialogs/press_a_key_dialog.cpp
index 5070067c6..464b09fa5 100644
--- a/src/states_screens/dialogs/press_a_key_dialog.cpp
+++ b/src/states_screens/dialogs/press_a_key_dialog.cpp
@@ -44,6 +44,12 @@ GUIEngine::EventPropagation PressAKeyDialog::processEvent(const std::string& eve
dismiss();
return GUIEngine::EVENT_BLOCK;
}
+ else if (eventSource == "assignNone")
+ {
+ Input simulatedInput;
+ OptionsScreenInput2::getInstance()->gotSensedInput(simulatedInput);
+ return GUIEngine::EVENT_BLOCK;
+ }
else if (eventSource == "assignEsc")
{
Input simulatedInput(Input::IT_KEYBOARD, 0 /* deviceID */, KEY_ESCAPE);
diff --git a/src/states_screens/options_screen_input2.cpp b/src/states_screens/options_screen_input2.cpp
index 2f72ce1ed..2b1fad3cc 100644
--- a/src/states_screens/options_screen_input2.cpp
+++ b/src/states_screens/options_screen_input2.cpp
@@ -447,6 +447,23 @@ void OptionsScreenInput2::gotSensedInput(const Input& sensed_input)
updateInputButtons();
}
}
+ else if (sensed_input.m_type == Input::IT_NONE)
+ {
+ if (UserConfigParams::logMisc())
+ {
+ std::cout << "% Binding " << KartActionStrings[binding_to_set]
+ << " : setting to keyboard key NONE\n\n";
+ }
+
+ KeyboardConfig* keyboard = (KeyboardConfig*)m_config;
+ keyboard->setBinding(binding_to_set, Input::IT_NONE,
+ sensed_input.m_button_id, Input::AD_NEUTRAL,
+ Input::AR_HALF,
+ sensed_input.m_character);
+
+ // refresh display
+ updateInputButtons();
+ }
else
{
return;