From 5601e4c18c2497d41a4f748f9cb3e503ce7d8b33 Mon Sep 17 00:00:00 2001 From: Allen Pestaluky Date: Thu, 5 Dec 2024 12:20:14 -0500 Subject: [PATCH] Forced fixed undo history to make editor shortcuts use global history. Fixes #76851. --- editor/editor_settings_dialog.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/editor/editor_settings_dialog.cpp b/editor/editor_settings_dialog.cpp index 8989b9cf9b9..1149d91ebda 100644 --- a/editor/editor_settings_dialog.cpp +++ b/editor/editor_settings_dialog.cpp @@ -332,7 +332,10 @@ void EditorSettingsDialog::_update_shortcut_events(const String &p_path, const A Ref current_sc = EditorSettings::get_singleton()->get_shortcut(p_path); EditorUndoRedoManager *undo_redo = EditorUndoRedoManager::get_singleton(); - undo_redo->create_action(vformat(TTR("Edit Shortcut: %s"), p_path)); + undo_redo->create_action(vformat(TTR("Edit Shortcut: %s"), p_path), UndoRedo::MERGE_DISABLE, EditorSettings::get_singleton()); + // History must be fixed based on the EditorSettings object because current_sc would + // incorrectly make this action use the scene history. + undo_redo->force_fixed_history(); undo_redo->add_do_method(current_sc.ptr(), "set_events", p_events); undo_redo->add_undo_method(current_sc.ptr(), "set_events", current_sc->get_events()); undo_redo->add_do_method(EditorSettings::get_singleton(), "mark_setting_changed", "shortcuts");