瀏覽代碼

Merge pull request #16249 from binbitten/fix-highlight-ofs

Fix TextEdit current line highlight horizontal offset
Rémi Verschelde 7 年之前
父節點
當前提交
9247f2de37
共有 1 個文件被更改,包括 7 次插入7 次删除
  1. 7 7
      scene/gui/text_edit.cpp

+ 7 - 7
scene/gui/text_edit.cpp

@@ -890,7 +890,7 @@ void TextEdit::_notification(int p_what) {
 				} else {
 					// if it has text, then draw current line marker in the margin, as line number etc will draw over it, draw the rest of line marker later.
 					if (line == cursor.line && highlight_current_line) {
-						VisualServer::get_singleton()->canvas_item_add_rect(ci, Rect2(0, ofs_y, xmargin_beg, get_row_height()), cache.current_line_color);
+						VisualServer::get_singleton()->canvas_item_add_rect(ci, Rect2(0, ofs_y, xmargin_beg + ofs_x, get_row_height()), cache.current_line_color);
 					}
 				}
 
@@ -1122,14 +1122,14 @@ void TextEdit::_notification(int p_what) {
 
 						// line highlighting handle horizontal clipping
 						if (line == cursor.line && highlight_current_line) {
-							// char next to margin is skipped
-							if ((char_ofs + char_margin) > xmargin_beg) {
-								VisualServer::get_singleton()->canvas_item_add_rect(ci, Rect2(xmargin_beg + ofs_x, ofs_y, (char_ofs + char_margin) - (xmargin_beg + ofs_x), get_row_height()), cache.current_line_color);
-							}
 
-							// end of line when last char is skipped
 							if (j == str.length() - 1) {
-								VisualServer::get_singleton()->canvas_item_add_rect(ci, Rect2(xmargin_beg + ofs_x, ofs_y, xmargin_end - (char_ofs + char_margin + char_w), get_row_height()), cache.current_line_color);
+								// end of line when last char is skipped
+								VisualServer::get_singleton()->canvas_item_add_rect(ci, Rect2(xmargin_beg + ofs_x, ofs_y, xmargin_end - (xmargin_beg + ofs_x), get_row_height()), cache.current_line_color);
+
+							} else if ((char_ofs + char_margin) > xmargin_beg) {
+								// char next to margin is skipped
+								VisualServer::get_singleton()->canvas_item_add_rect(ci, Rect2(xmargin_beg + ofs_x, ofs_y, (char_ofs + char_margin) - xmargin_beg, get_row_height()), cache.current_line_color);
 							}
 						}
 						continue;