Browse Source

Merge pull request #64536 from Mickeon/editor-tree-icon-size

Account for TreeItem's Cell icon and center the text Popup vertically
Rémi Verschelde 3 years ago
parent
commit
0a5f5c8558
1 changed files with 6 additions and 1 deletions
  1. 6 1
      scene/gui/tree.cpp

+ 6 - 1
scene/gui/tree.cpp

@@ -3718,12 +3718,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();