diff options
Diffstat (limited to 'editor/scene_tree_dock.cpp')
-rw-r--r-- | editor/scene_tree_dock.cpp | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/editor/scene_tree_dock.cpp b/editor/scene_tree_dock.cpp index 56924fc1fe..30050901d9 100644 --- a/editor/scene_tree_dock.cpp +++ b/editor/scene_tree_dock.cpp @@ -1551,7 +1551,7 @@ void SceneTreeDock::_notification(int p_what) { node_shortcuts_toggle->set_tooltip_text(TTR("Toggle the display of favorite nodes.")); node_shortcuts_toggle->set_pressed(EDITOR_GET("_use_favorites_root_selection")); node_shortcuts_toggle->set_anchors_and_offsets_preset(Control::PRESET_CENTER_RIGHT); - node_shortcuts_toggle->connect(SceneStringName(pressed), callable_mp(this, &SceneTreeDock::_update_create_root_dialog)); + node_shortcuts_toggle->connect(SceneStringName(pressed), callable_mp(this, &SceneTreeDock::_update_create_root_dialog).bind(false)); top_row->add_child(node_shortcuts_toggle); create_root_dialog->add_child(top_row); @@ -1601,7 +1601,7 @@ void SceneTreeDock::_notification(int p_what) { button_clipboard->set_icon(get_editor_theme_icon(SNAME("ActionPaste"))); button_clipboard->connect(SceneStringName(pressed), callable_mp(this, &SceneTreeDock::_tool_selected).bind(TOOL_PASTE, false)); - _update_create_root_dialog(); + _update_create_root_dialog(true); } break; case NOTIFICATION_ENTER_TREE: { @@ -4116,9 +4116,12 @@ void SceneTreeDock::_local_tree_selected() { edit_local->set_pressed(true); } -void SceneTreeDock::_update_create_root_dialog() { - EditorSettings::get_singleton()->set_setting("_use_favorites_root_selection", node_shortcuts_toggle->is_pressed()); - EditorSettings::get_singleton()->save(); +void SceneTreeDock::_update_create_root_dialog(bool p_initializing) { + if (!p_initializing) { + EditorSettings::get_singleton()->set_setting("_use_favorites_root_selection", node_shortcuts_toggle->is_pressed()); + EditorSettings::get_singleton()->save(); + } + if (node_shortcuts_toggle->is_pressed()) { for (int i = 0; i < favorite_node_shortcuts->get_child_count(); i++) { favorite_node_shortcuts->get_child(i)->queue_free(); @@ -4542,7 +4545,7 @@ SceneTreeDock::SceneTreeDock(Node *p_scene_root, EditorSelection *p_editor_selec create_dialog->set_base_type("Node"); add_child(create_dialog); create_dialog->connect("create", callable_mp(this, &SceneTreeDock::_create)); - create_dialog->connect("favorites_updated", callable_mp(this, &SceneTreeDock::_update_create_root_dialog)); + create_dialog->connect("favorites_updated", callable_mp(this, &SceneTreeDock::_update_create_root_dialog).bind(false)); #ifdef MODULE_REGEX_ENABLED rename_dialog = memnew(RenameDialog(scene_tree)); |