diff options
| -rw-r--r-- | scene/gui/line_edit.cpp | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/scene/gui/line_edit.cpp b/scene/gui/line_edit.cpp index 3dcbf64e7c..d5347edb87 100644 --- a/scene/gui/line_edit.cpp +++ b/scene/gui/line_edit.cpp @@ -999,6 +999,8 @@ void LineEdit::set_cursor_at_pixel_pos(int p_x) {  	Ref<StyleBox> style = get_stylebox("normal");  	int pixel_ofs = 0;  	Size2 size = get_size(); +	bool display_clear_icon = !text.empty() && is_editable() && clear_button_enabled; +	int r_icon_width = Control::get_icon("clear")->get_width();  	switch (align) { @@ -1013,10 +1015,16 @@ void LineEdit::set_cursor_at_pixel_pos(int p_x) {  				pixel_ofs = int(style->get_offset().x);  			else  				pixel_ofs = int(size.width - (cached_width)) / 2; + +			if (display_clear_icon) +				pixel_ofs -= int(r_icon_width / 2 + style->get_margin(MARGIN_RIGHT));  		} break;  		case ALIGN_RIGHT: {  			pixel_ofs = int(size.width - style->get_margin(MARGIN_RIGHT) - (cached_width)); + +			if (display_clear_icon) +				pixel_ofs -= int(r_icon_width + style->get_margin(MARGIN_RIGHT));  		} break;  	}  |