Merge pull request #58559 from fazil47/scene-tree-icon-focus

Double clicking scene tree icon focuses that node
This commit is contained in:
Rémi Verschelde 2022-03-01 08:46:14 +01:00 committed by GitHub
commit 1b446ebcd4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 14 additions and 1 deletions

View File

@ -3286,8 +3286,21 @@ void Tree::gui_input(const Ref<InputEvent> &p_event) {
} else {
Rect2 rect = get_selected()->get_meta("__focus_rect");
Point2 mpos = b->get_position();
int icon_size_x = 0;
Ref<Texture2D> icon = get_selected()->get_icon(selected_col);
if (icon.is_valid()) {
Rect2i icon_region = get_selected()->get_icon_region(selected_col);
if (icon_region == Rect2i()) {
icon_size_x = icon->get_width();
} else {
icon_size_x = icon_region.size.width;
}
}
// Icon is treated as if it is outside of the rect so that double clicking on it will emit the item_double_clicked signal.
if (rtl) {
mpos.x = get_size().width - mpos.x;
mpos.x = get_size().width - (mpos.x + icon_size_x);
} else {
mpos.x -= icon_size_x;
}
if (rect.has_point(mpos)) {
if (!edit_selected()) {