From 42741df8c47575be355d59de950baddedd1b9985 Mon Sep 17 00:00:00 2001 From: SkyratBot <59378654+SkyratBot@users.noreply.github.com> Date: Wed, 30 Sep 2020 14:16:54 +0200 Subject: [PATCH] [MIRROR] Fixes some keybind setting ambiguity (#1076) * Fixes some keybind setting ambiguity (#53992) * Fixes some keybind setting ambiguity Co-authored-by: Rohesie --- code/modules/client/preferences.dm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/code/modules/client/preferences.dm b/code/modules/client/preferences.dm index 8e0af09c3a1..975bcdf7312 100644 --- a/code/modules/client/preferences.dm +++ b/code/modules/client/preferences.dm @@ -785,7 +785,7 @@ GLOBAL_LIST_EMPTY(preferences_datums) dat += "

[category]

" for (var/i in kb_categories[category]) var/datum/keybinding/kb = i - if(!length(user_binds[kb.name])) + if(!length(user_binds[kb.name]) || user_binds[kb.name][1] == "Unbound") dat += " Unbound" var/list/default_keys = hotkeys ? kb.hotkey_keys : kb.classic_keys if(LAZYLEN(default_keys)) @@ -1654,6 +1654,8 @@ GLOBAL_LIST_EMPTY(preferences_datums) full_key = "[AltMod][CtrlMod][new_key]" else full_key = "[AltMod][CtrlMod][ShiftMod][numpad][new_key]" + if(kb_name in key_bindings[full_key]) //We pressed the same key combination that was already bound here, so let's remove to re-add and re-sort. + key_bindings[full_key] -= kb_name if(key_bindings[old_key]) key_bindings[old_key] -= kb_name if(!length(key_bindings[old_key]))