Browse Source

Fixed RichTextLabel wrong selection offset after drop cap.

Koyper 2 years ago
parent
commit
99376eebe0
1 changed files with 10 additions and 1 deletions
  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);