diff options
| author | Bruno Ortiz | 2016-12-20 19:47:24 -0200 |
|---|---|---|
| committer | bruno-ortizgb | 2017-01-02 11:26:37 -0200 |
| commit | 4b9a96859b6d80b9b50a0512d3ab9c6d05a4deb1 (patch) | |
| tree | 98e85aa947ae793090ef09a6c57495847ce949bb /scene/gui/tree.cpp | |
| parent | 2c8a1729152f5bcb1cb81d24b1e642634bff7174 (diff) | |
| download | godot-4b9a96859b6d80b9b50a0512d3ab9c6d05a4deb1.tar.gz godot-4b9a96859b6d80b9b50a0512d3ab9c6d05a4deb1.tar.zst godot-4b9a96859b6d80b9b50a0512d3ab9c6d05a4deb1.zip | |
Diffstat (limited to 'scene/gui/tree.cpp')
| -rw-r--r-- | scene/gui/tree.cpp | 22 |
1 files changed, 6 insertions, 16 deletions
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index d974e0927..85af351c0 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -1396,11 +1396,7 @@ void Tree::select_single_item(TreeItem *p_selected, TreeItem *p_current, int p_c if (select_mode==SELECT_ROW) { - - if (p_selected==p_current) { - - if (!c.selected) { - + if (p_selected==p_current && !c.selected) { c.selected=true; selected_item=p_selected; selected_col=0; @@ -1410,24 +1406,17 @@ void Tree::select_single_item(TreeItem *p_selected, TreeItem *p_current, int p_c emitted_row=true; } //if (p_col==i) - // p_current->selected_signal.call(p_col); - } + // p_current->selected_signal.call(p_col); - } else { - - if (c.selected) { + } else if (c.selected) { c.selected=false; //p_current->deselected_signal.call(p_col); - } - } - } else if (select_mode==SELECT_SINGLE || select_mode==SELECT_MULTI) { if (!r_in_range && &selected_cell==&c) { - if (!selected_cell.selected) { selected_cell.selected=true; @@ -1438,6 +1427,8 @@ void Tree::select_single_item(TreeItem *p_selected, TreeItem *p_current, int p_c emit_signal("cell_selected"); if (select_mode==SELECT_MULTI) emit_signal("multi_selected",p_current,i,true); + else if(select_mode == SELECT_SINGLE) + emit_signal("item_selected"); } else if (select_mode==SELECT_MULTI && (selected_item!=p_selected || selected_col!=i)) { @@ -2923,8 +2914,7 @@ void Tree::item_selected(int p_column,TreeItem *p_item) { void Tree::item_deselected(int p_column,TreeItem *p_item) { - if (select_mode==SELECT_MULTI) { - + if (select_mode==SELECT_MULTI || select_mode == SELECT_SINGLE) { p_item->cells[p_column].selected=false; } update(); |
