summaryrefslogtreecommitdiff
path: root/scene
diff options
context:
space:
mode:
authorMicky <micheledevita2@gmail.com>2022-08-17 16:02:17 +0200
committerMicky <micheledevita2@gmail.com>2022-08-19 13:21:19 +0200
commit550616293a4ed795082421014ffb43da594edde5 (patch)
tree03b56ee348804102fa6d5c40c9b28a9e8a1f5de0 /scene
parentdbd15243621ec595742b18abc4c26f3cb2e00f3d (diff)
Account for TreeItem's Cell icon and center the text Popup vertically
Diffstat (limited to 'scene')
-rw-r--r--scene/gui/tree.cpp7
1 files changed, 6 insertions, 1 deletions
diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp
index 1eb6c5a554..e65e2d0d41 100644
--- a/scene/gui/tree.cpp
+++ b/scene/gui/tree.cpp
@@ -3591,12 +3591,17 @@ bool Tree::edit_selected() {
} else if (c.mode == TreeItem::CELL_MODE_STRING || c.mode == TreeItem::CELL_MODE_RANGE) {
Rect2 popup_rect;
- Vector2 ofs(0, (text_editor->get_size().height - rect.size.height) / 2);
+ Vector2 ofs(0, Math::floor((text_editor->get_size().height - rect.size.height) / 2)); // "floor()" centers vertically.
Point2i textedpos = get_screen_position() + rect.position - ofs;
cache.text_editor_position = textedpos;
popup_rect.position = textedpos;
popup_rect.size = rect.size;
+
+ // Account for icon.
+ popup_rect.position.x += c.get_icon_size().x;
+ popup_rect.size.x -= c.get_icon_size().x;
+
text_editor->clear();
text_editor->set_text(c.mode == TreeItem::CELL_MODE_STRING ? c.text : String::num(c.val, Math::range_step_decimals(c.step)));
text_editor->select_all();