From 8d6717820466f5c2d287f74e5379fc53a37e2a95 Mon Sep 17 00:00:00 2001 From: Relintai Date: Fri, 12 Jan 2024 12:24:09 +0100 Subject: [PATCH] Backported from godot4: Fix TextEdit.get_rect_at_line_column returning negative pos even though cursor is in viewable area of the control - MJacred https://github.com/godotengine/godot/commit/6170381bd754490aee34e5a34558460d5c2f33f9 --- scene/gui/text_edit.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 16112b8b7..8b4c5d199 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -4825,10 +4825,16 @@ Rect2 TextEdit::get_rect_at_line_column(int p_line, int p_column) const { ERR_FAIL_COND_V(p_column < 0, Rect2i(-1, -1, 0, 0)); ERR_FAIL_COND_V(p_column > text[p_line].length(), Rect2i(-1, -1, 0, 0)); + if (text.size() == 1 && text[0].length() == 0) { + // The TextEdit is empty. + return Rect2i(); + } + if (line_drawing_cache.size() == 0 || !line_drawing_cache.has(p_line)) { // Line is not in the cache, which means it's outside of the viewing area. return Rect2i(-1, -1, 0, 0); } + LineDrawingCache cache_entry = line_drawing_cache[p_line]; int wrap_index = get_line_wrap_index_at_col(p_line, p_column);