summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRémi Verschelde <rverschelde@gmail.com>2018-01-13 17:45:03 +0100
committerGitHub <noreply@github.com>2018-01-13 17:45:03 +0100
commit892568abeeb6837a801f6d3769c7dd75f3ac5f92 (patch)
tree7844892cd28d34a9fdce6cefc358979c487101c9
parent69452fbc3754ed517280a674aa61b36de31cac7f (diff)
parent363980519c93dfb7251335c243e02bb886fb434e (diff)
Merge pull request #15670 from poke1024/fix15588
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;