Explorar o código

Stop move_to_bottom losing references to treeitems

MillionOstrich %!s(int64=8) %!d(string=hai) anos
pai
achega
8d8a90daef
Modificáronse 1 ficheiros con 10 adicións e 7 borrados
  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 {