diff options
| author | Keetz | 2016-11-02 16:23:03 +0100 |
|---|---|---|
| committer | Rémi Verschelde | 2016-11-15 08:28:52 +0100 |
| commit | 86c6aabf27f42c653d7af65a59a15c9cfcd90a7e (patch) | |
| tree | b8e9be41e26e8ee1bc84cbc1e31f2f1022cbb7f4 | |
| parent | e5f210693c0b689833ef682e7753cfb77a80082a (diff) | |
| download | godot-86c6aabf27f42c653d7af65a59a15c9cfcd90a7e.tar.gz godot-86c6aabf27f42c653d7af65a59a15c9cfcd90a7e.tar.zst godot-86c6aabf27f42c653d7af65a59a15c9cfcd90a7e.zip | |
| -rw-r--r-- | tools/editor/scene_tree_dock.cpp | 35 |
1 files changed, 4 insertions, 31 deletions
diff --git a/tools/editor/scene_tree_dock.cpp b/tools/editor/scene_tree_dock.cpp index d15a145d9..fa34a978c 100644 --- a/tools/editor/scene_tree_dock.cpp +++ b/tools/editor/scene_tree_dock.cpp @@ -1573,7 +1573,7 @@ static bool _is_node_visible(Node* p_node) { static bool _has_visible_children(Node* p_node) { - bool collapsed = p_node->has_meta("_editor_collapsed") ? (bool)p_node->get_meta("_editor_collapsed") : false; + bool collapsed = p_node->is_displayed_folded(); if (collapsed) return false; @@ -1596,7 +1596,7 @@ static Node* _find_last_visible(Node* p_node) { Node* last=NULL; - bool collapsed = p_node->has_meta("_editor_collapsed") ? (bool)p_node->get_meta("_editor_collapsed") : false; + bool collapsed = p_node->is_displayed_folded(); if (!collapsed) { for(int i=0;i<p_node->get_child_count();i++) { @@ -1631,36 +1631,9 @@ void SceneTreeDock::_normalize_drop(Node*& to_node, int &to_pos, int p_type) { ERR_EXPLAIN("Cannot perform drop above the root node!"); ERR_FAIL(); } - Node* upper_sibling=NULL; - for(int i=0;i<to_node->get_index();i++) { - Node *c =to_node->get_parent()->get_child(i); - if (_is_node_visible(c)) { - upper_sibling=c; - } - } - - - if (upper_sibling) { - //quite complicated, look for next visible in tree - upper_sibling=_find_last_visible(upper_sibling); - - if (upper_sibling->get_parent()==to_node->get_parent()) { - //just insert over this node because nothing is above at an upper level - to_pos=to_node->get_index(); - to_node=to_node->get_parent(); - } else { - to_pos=-1; //insert last in whathever is up - to_node=upper_sibling->get_parent(); //insert at a parent of whathever is up - } - - - } else { - //just insert over this node because nothing is above at the same level - to_pos=to_node->get_index(); - to_node=to_node->get_parent(); - - } + to_pos=to_node->get_index(); + to_node=to_node->get_parent(); } else if (p_type==1) { //drop at below selected node |
