Repository: godotengine/godot (language: cpp)

Issue:
Changing Editor Shortcuts is added to Scene History
### Godot version

4

### System information

Windows

### Issue description

![image](https://user-images.githubusercontent.com/16458555/236888224-90ed36b6-b033-4046-bada-eda49c59a156.png)


### Steps to reproduce

- add a scene
- change something in Editor-Shortcuts

### Minimal reproduction project

-


Discussion / hints:
I believe this occurs with all editor setting changes, but I agree these shouldn't be stored in undo/redo. Project setting changes should be stored in undo/redo though.
only with Shortcuts
for example I change idle_parse_delay, and it is visible only if `Global` is checked
Seems like duplicate of #73755?

Fix patch:
diff --git a/editor/editor_settings_dialog.cpp b/editor/editor_settings_dialog.cpp
index 8989b9cf9b9b..1149d91ebda6 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<Shortcut> 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");


Test patch: