summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBernhard Liebl <Bernhard.Liebl@gmx.org>2018-01-13 17:27:32 +0100
committerBernhard Liebl <Bernhard.Liebl@gmx.org>2018-01-13 17:34:12 +0100
commit363980519c93dfb7251335c243e02bb886fb434e (patch)
tree9915894c03247e657bacfa0dea4191f21901311d
parent30d7943311cdf4efbc6794a52df0e298f5e6d975 (diff)
Fixes hangs with Tree in multi selection mode (issue 15588)
-rw-r--r--scene/gui/tree.cpp3
1 files changed, 3 insertions, 0 deletions
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index 8fec9fe97a..a4b703af9e 100644
--- a/scene/gui/tree.cpp
+++ b/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;