diff --git a/indra/newview/app_settings/key_bindings.xml b/indra/newview/app_settings/key_bindings.xml
index 0c90ef26df..d0c25f3ed0 100644
--- a/indra/newview/app_settings/key_bindings.xml
+++ b/indra/newview/app_settings/key_bindings.xml
@@ -31,6 +31,8 @@
+
+
@@ -122,6 +124,8 @@
+
+
@@ -178,6 +182,8 @@
+
+
@@ -273,6 +279,8 @@
+
+
@@ -298,5 +306,7 @@
+
+
-
\ No newline at end of file
+
diff --git a/indra/newview/llkeyconflict.cpp b/indra/newview/llkeyconflict.cpp
index 0b9aaea478..71ba0d37b3 100644
--- a/indra/newview/llkeyconflict.cpp
+++ b/indra/newview/llkeyconflict.cpp
@@ -480,6 +480,7 @@ void LLKeyConflictHandler::saveToSettings()
// Still write empty LLKeyData to make sure we will maintain UI position
if (data.mKey == KEY_NONE)
{
+ // Might be better idea to be consistent and use NONE. LLViewerInput can work with both cases
binding.key = "";
}
else
diff --git a/indra/newview/llviewerinput.cpp b/indra/newview/llviewerinput.cpp
index 02d0dcb6c7..2327ac7f4c 100644
--- a/indra/newview/llviewerinput.cpp
+++ b/indra/newview/llviewerinput.cpp
@@ -1198,10 +1198,11 @@ S32 LLViewerInput::loadBindingMode(const LLViewerInput::KeyMode& keymode, S32 mo
++it)
{
bool processed = false;
- if (!it->key.getValue().empty())
+ std::string key_str = it->key.getValue();
+ if (!key_str.empty() && key_str != "NONE")
{
KEY key;
- LLKeyboard::keyFromString(it->key, &key);
+ LLKeyboard::keyFromString(key_str, &key);
if (key != KEY_NONE)
{
MASK mask;