Browse Source

Fixes hangs with Tree in multi selection mode (issue 15588)

Bernhard Liebl 7 years ago
parent
commit
363980519c
1 changed files with 3 additions and 0 deletions
  1. 3 0
      scene/gui/tree.cpp

+ 3 - 0
scene/gui/tree.cpp

@@ -3070,6 +3070,7 @@ void Tree::item_selected(int p_column, TreeItem *p_item) {
 		p_item->cells[p_column].selected = true;
 		//emit_signal("multi_selected",p_item,p_column,true); - NO this is for TreeItem::select
 
+		selected_col = p_column;
 	} else {
 
 		select_single_item(p_item, root, p_column);
@@ -3100,7 +3101,9 @@ void Tree::deselect_all() {
 	TreeItem *item = get_next_selected(get_root());
 	while (item) {
 		item->deselect(selected_col);
+		TreeItem *prev_item = item;
 		item = get_next_selected(get_root());
+		ERR_FAIL_COND(item == prev_item);
 	}
 
 	selected_item = NULL;