Browse Source

Merge pull request #12042 from MillionOstrich/treeitem-move-to-bottom

Stop move_to_bottom losing references to treeitems
Poommetee Ketson 7 years ago
parent
commit
ec12e3b4f9
1 changed files with 10 additions and 7 deletions
  1. 10 7
      scene/gui/tree.cpp

+ 10 - 7
scene/gui/tree.cpp

@@ -47,18 +47,21 @@ void TreeItem::move_to_top() {
 }
 
 void TreeItem::move_to_bottom() {
-
 	if (!parent || !next)
 		return;
 
-	while (next) {
+	TreeItem *prev = get_prev();
+	TreeItem *last = next;
+	while (last->next)
+		last = last->next;
 
-		if (parent->childs == this)
-			parent->childs = next;
-		TreeItem *n = next;
-		next = n->next;
-		n->next = this;
+	if (prev) {
+		prev->next = next;
+	} else {
+		parent->childs = next;
 	}
+	last->next = this;
+	next = NULL;
 }
 
 Size2 TreeItem::Cell::get_icon_size() const {