diff options
Diffstat (limited to 'editor/script_editor_debugger.cpp')
-rw-r--r-- | editor/script_editor_debugger.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/editor/script_editor_debugger.cpp b/editor/script_editor_debugger.cpp index 01cfdc1b57..fee67df9c9 100644 --- a/editor/script_editor_debugger.cpp +++ b/editor/script_editor_debugger.cpp @@ -372,7 +372,13 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da if (has_icon(p_data[i + 2], "EditorIcons")) it->set_icon(0, get_icon(p_data[i + 2], "EditorIcons")); it->set_metadata(0, id); + if (id == inspected_object_id) { + TreeItem *cti = it->get_parent(); //ensure selected is always uncollapsed + while (cti) { + cti->set_collapsed(false); + cti = cti->get_parent(); + } it->select(0); } @@ -385,6 +391,7 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da it->set_collapsed(true); } } + lv[level] = it; } updating_scene_tree = false; @@ -439,11 +446,8 @@ void ScriptEditorDebugger::_parse_message(const String &p_msg, const Array &p_da inspected_object->last_edited_id = id; - if (tabs->get_current_tab() == 2) { - inspect_properties->edit(inspected_object); - } else { - editor->push_item(inspected_object); - } + tabs->set_current_tab(inspect_info->get_index()); + inspect_properties->edit(inspected_object); } else if (p_msg == "message:video_mem") { @@ -1086,9 +1090,6 @@ void ScriptEditorDebugger::stop() { EditorNode::get_singleton()->get_pause_button()->set_pressed(false); EditorNode::get_singleton()->get_pause_button()->set_disabled(true); - //avoid confusion when stopped debugging but an object is still edited - EditorNode::get_singleton()->push_item(NULL); - if (hide_on_stop) { if (is_visible_in_tree()) EditorNode::get_singleton()->hide_bottom_panel(); |