浏览代码

Fixed RichTextLabel wrong selection offset after drop cap.

Koyper 2 年之前
父节点
当前提交
99376eebe0
共有 1 个文件被更改,包括 10 次插入1 次删除
  1. 10 1
      scene/gui/rich_text_label.cpp

+ 10 - 1
scene/gui/rich_text_label.cpp

@@ -1470,7 +1470,16 @@ float RichTextLabel::_find_click_in_line(ItemFrame *p_frame, int p_line, const V
 				}
 			} break;
 		}
-
+		// Adjust for dropcap.
+		int dc_lines = l.text_buf->get_dropcap_lines();
+		float h_off = l.text_buf->get_dropcap_size().x;
+		if (line <= dc_lines) {
+			if (rtl) {
+				off.x -= h_off;
+			} else {
+				off.x += h_off;
+			}
+		}
 		off.y += TS->shaped_text_get_ascent(rid);
 
 		Array objects = TS->shaped_text_get_objects(rid);