From cb5870dd4a66854c0b7875cde2239bbcfb45124c Mon Sep 17 00:00:00 2001 From: kobewi Date: Fri, 7 May 2021 17:39:55 +0200 Subject: [PATCH] Display arrow cursor if text is not editable (cherry picked from commit c3967c80abd2078f0996761faed256a33cf38d97) --- scene/gui/line_edit.cpp | 2 +- scene/gui/text_edit.cpp | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index 2e6eb2d07da..b537f11a9c4 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -648,7 +648,7 @@ void LineEdit::drop_data(const Point2 &p_point, const Variant &p_data) { } Control::CursorShape LineEdit::get_cursor_shape(const Point2 &p_pos) const { - if (!text.empty() && is_editable() && _is_over_clear_button(p_pos)) { + if ((!text.empty() && is_editable() && _is_over_clear_button(p_pos)) || (!is_editable() && (!is_selecting_enabled() || text.empty()))) { return CURSOR_ARROW; } return Control::get_cursor_shape(p_pos); diff --git a/scene/gui/text_edit.cpp b/scene/gui/text_edit.cpp index 49a6916a449..473b6ad4dae 100644 --- a/scene/gui/text_edit.cpp +++ b/scene/gui/text_edit.cpp @@ -4811,10 +4811,11 @@ Control::CursorShape TextEdit::get_cursor_shape(const Point2 &p_pos) const { return CURSOR_POINTING_HAND; } - int gutter = cache.style_normal->get_margin(MARGIN_LEFT) + cache.line_number_w + cache.breakpoint_gutter_width + cache.fold_gutter_width + cache.info_gutter_width; - if ((completion_active && completion_rect.has_point(p_pos))) { + if ((completion_active && completion_rect.has_point(p_pos)) || (is_readonly() && (!is_selecting_enabled() || text.size() == 0))) { return CURSOR_ARROW; } + + int gutter = cache.style_normal->get_margin(MARGIN_LEFT) + cache.line_number_w + cache.breakpoint_gutter_width + cache.fold_gutter_width + cache.info_gutter_width; if (p_pos.x < gutter) { int row, col; _get_mouse_pos(p_pos, row, col);