diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2023-02-21 08:46:55 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-02-21 08:46:55 +0100 |
commit | 812b1a40882a5e313be1db6052332c622a36eb1e (patch) | |
tree | 7f446c39d74ee3cc828c7eef79376142df42d60e /editor | |
parent | 052d8d804e9ad62f672fe13cecb5de34352b7ea5 (diff) | |
parent | 64ba999eb19c6dda68a55b60d5f42d0fc69bf841 (diff) |
Merge pull request #73664 from bruvzg/fix_sc_reset
[Editor] Fix shortcut reset.
Diffstat (limited to 'editor')
-rw-r--r-- | editor/editor_settings.cpp | 12 | ||||
-rw-r--r-- | editor/editor_settings.h | 1 |
2 files changed, 10 insertions, 3 deletions
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index 0868de4a11..b4f5eeda84 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -1384,8 +1384,13 @@ float EditorSettings::get_auto_display_scale() const { // Shortcuts +void EditorSettings::_add_shortcut_default(const String &p_name, const Ref<Shortcut> &p_shortcut) { + shortcuts[p_name] = p_shortcut; +} + void EditorSettings::add_shortcut(const String &p_name, const Ref<Shortcut> &p_shortcut) { shortcuts[p_name] = p_shortcut; + shortcuts[p_name]->set_meta("customized", true); } bool EditorSettings::is_shortcut(const String &p_name, const Ref<InputEvent> &p_event) const { @@ -1489,8 +1494,8 @@ void ED_SHORTCUT_OVERRIDE_ARRAY(const String &p_path, const String &p_feature, c } } - // Override the existing shortcut only if it wasn't customized by the user (i.e. still "original"). - if (sc->has_meta("original") && Shortcut::is_event_array_equal(sc->get_events(), sc->get_meta("original"))) { + // Override the existing shortcut only if it wasn't customized by the user. + if (!sc->has_meta("customized")) { sc->set_events(events); } @@ -1535,6 +1540,7 @@ Ref<Shortcut> ED_SHORTCUT_ARRAY(const String &p_path, const String &p_name, cons Ref<Shortcut> sc = EditorSettings::get_singleton()->get_shortcut(p_path); if (sc.is_valid()) { sc->set_name(p_name); //keep name (the ones that come from disk have no name) + sc->set_meta("original", events.duplicate(true)); //to compare against changes return sc; } @@ -1542,7 +1548,7 @@ Ref<Shortcut> ED_SHORTCUT_ARRAY(const String &p_path, const String &p_name, cons sc->set_name(p_name); sc->set_events(events); sc->set_meta("original", events.duplicate(true)); //to compare against changes - EditorSettings::get_singleton()->add_shortcut(p_path, sc); + EditorSettings::get_singleton()->_add_shortcut_default(p_path, sc); return sc; } diff --git a/editor/editor_settings.h b/editor/editor_settings.h index e8775636a3..e1d3e757e0 100644 --- a/editor/editor_settings.h +++ b/editor/editor_settings.h @@ -170,6 +170,7 @@ public: String get_editor_layouts_config() const; float get_auto_display_scale() const; + void _add_shortcut_default(const String &p_name, const Ref<Shortcut> &p_shortcut); void add_shortcut(const String &p_name, const Ref<Shortcut> &p_shortcut); bool is_shortcut(const String &p_name, const Ref<InputEvent> &p_event) const; Ref<Shortcut> get_shortcut(const String &p_name) const; |