diff options
author | Micky <micheledevita2@gmail.com> | 2022-08-17 16:02:17 +0200 |
---|---|---|
committer | Micky <micheledevita2@gmail.com> | 2022-08-19 13:21:19 +0200 |
commit | 550616293a4ed795082421014ffb43da594edde5 (patch) | |
tree | 03b56ee348804102fa6d5c40c9b28a9e8a1f5de0 /scene | |
parent | dbd15243621ec595742b18abc4c26f3cb2e00f3d (diff) |
Account for TreeItem's Cell icon and center the text Popup vertically
Diffstat (limited to 'scene')
-rw-r--r-- | scene/gui/tree.cpp | 7 |
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(); |