From 0c766ef271db2b3bb18c591d3ff2d2a6f9e1e450 Mon Sep 17 00:00:00 2001 From: Stanislav Labzyuk Date: Sat, 4 Feb 2023 16:17:42 +0100 Subject: [PATCH] Fix unlimited text rendering in Tree if width <= 0 --- scene/gui/tree.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scene/gui/tree.cpp b/scene/gui/tree.cpp index 0f397158511..f8c2e9f4ad3 100644 --- a/scene/gui/tree.cpp +++ b/scene/gui/tree.cpp @@ -1775,10 +1775,10 @@ void Tree::draw_item_rect(TreeItem::Cell &p_cell, const Rect2i &p_rect, const Co RID ci = get_canvas_item(); - if (rtl) { + if (rtl && rect.size.width > 0) { Point2 draw_pos = rect.position; draw_pos.y += Math::floor((rect.size.y - p_cell.text_buf->get_size().y) / 2.0); - p_cell.text_buf->set_width(MAX(0, rect.size.width)); + p_cell.text_buf->set_width(rect.size.width); if (p_ol_size > 0 && p_ol_color.a > 0) { p_cell.text_buf->draw_outline(ci, draw_pos, p_ol_size, p_ol_color); } @@ -1800,10 +1800,10 @@ void Tree::draw_item_rect(TreeItem::Cell &p_cell, const Rect2i &p_rect, const Co rect.size.x -= bmsize.x + theme_cache.h_separation; } - if (!rtl) { + if (!rtl && rect.size.width > 0) { Point2 draw_pos = rect.position; draw_pos.y += Math::floor((rect.size.y - p_cell.text_buf->get_size().y) / 2.0); - p_cell.text_buf->set_width(MAX(0, rect.size.width)); + p_cell.text_buf->set_width(rect.size.width); if (p_ol_size > 0 && p_ol_color.a > 0) { p_cell.text_buf->draw_outline(ci, draw_pos, p_ol_size, p_ol_color); }