Commit 8a0a1ff
Fix key binding
Changed files (1)
Diff
@@ -102,28 +102,30 @@ public abstract class SettingsDisplay : FontDisplay { public override void key_release (uint keyval) { SettingsItem old_key_binding; - if (update_key_bindings) {- if (keyval == Key.BACK_SPACE) {- update_key_bindings = false;- new_key_bindings.active = false;- new_key_bindings.menu_item.modifiers = NONE;- new_key_bindings.menu_item.key = '\0'; - } else if (KeyBindings.get_mod_from_key (keyval) == NONE) {- - if (has_key_binding (KeyBindings.modifier, (unichar) keyval)) {- old_key_binding = (!) get_key_binding (KeyBindings.modifier, (unichar) keyval);- old_key_binding.menu_item.modifiers = NONE;- old_key_binding.menu_item.key = '\0';+ if (!KeyBindings.is_modifier_key (keyval)) {+ if (update_key_bindings) {+ if (keyval == Key.BACK_SPACE) {+ update_key_bindings = false;+ new_key_bindings.active = false;+ new_key_bindings.menu_item.modifiers = NONE;+ new_key_bindings.menu_item.key = '\0'; + } else if (KeyBindings.get_mod_from_key (keyval) == NONE) {+ + if (has_key_binding (KeyBindings.modifier, (unichar) keyval)) {+ old_key_binding = (!) get_key_binding (KeyBindings.modifier, (unichar) keyval);+ old_key_binding.menu_item.modifiers = NONE;+ old_key_binding.menu_item.key = '\0';+ }+ + new_key_bindings.menu_item.modifiers = KeyBindings.modifier;+ new_key_bindings.menu_item.key = (unichar) keyval;+ update_key_bindings = false;+ new_key_bindings.active = false; } - new_key_bindings.menu_item.modifiers = KeyBindings.modifier;- new_key_bindings.menu_item.key = (unichar) keyval;- update_key_bindings = false;- new_key_bindings.active = false;+ MainWindow.get_menu ().write_key_bindings ();+ GlyphCanvas.redraw (); }- - MainWindow.get_menu ().write_key_bindings ();- GlyphCanvas.redraw (); } }