فهرست منبع

Fix 'LineEdit' contents not ending before the clear button if no right icon was set

Fixes #28242.

(cherry picked from commit d84acb98d0863ec142a9496bd229e7163deaefe8)
Michael Alexsander Silva Dias 6 سال پیش
والد
کامیت
8e7f5c8628
1فایلهای تغییر یافته به همراه4 افزوده شده و 2 حذف شده
  1. 4 2
      scene/gui/line_edit.cpp

+ 4 - 2
scene/gui/line_edit.cpp

@@ -1159,8 +1159,10 @@ void LineEdit::set_cursor_position(int p_pos) {
 	} else if (cursor_pos > window_pos) {
 		/* Adjust window if cursor goes too much to the right */
 		int window_width = get_size().width - style->get_minimum_size().width;
-		if (right_icon.is_valid()) {
-			window_width -= right_icon->get_width();
+		bool display_clear_icon = !text.empty() && is_editable() && clear_button_enabled;
+		if (right_icon.is_valid() || display_clear_icon) {
+			Ref<Texture> r_icon = display_clear_icon ? Control::get_icon("clear") : right_icon;
+			window_width -= r_icon->get_width();
 		}
 
 		if (window_width < 0)