diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index 78311518071..723bdfb88cf 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -1526,8 +1526,10 @@ void Tree::select_single_item(TreeItem *p_selected, TreeItem *p_current, int p_c */ } else if (c.selected) { - c.selected = false; - //p_current->deselected_signal.call(p_col); + if (p_selected != p_current) { + // Deselect other rows. + c.selected = false; + } } } else if (select_mode == SELECT_SINGLE || select_mode == SELECT_MULTI) { if (!r_in_range && &selected_cell == &c) {