Merge pull request #90472 from bruvzg/rtl_dc_pr_vc
[RTL] Fix dropcaps and list prefixes not taking visible characters into account.
This commit is contained in:
commit
5d4507b914
1 changed files with 8 additions and 4 deletions
|
@ -835,10 +835,13 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
|
|||
// Draw dropcap.
|
||||
int dc_lines = l.text_buf->get_dropcap_lines();
|
||||
float h_off = l.text_buf->get_dropcap_size().x;
|
||||
if (l.dc_ol_size > 0) {
|
||||
l.text_buf->draw_dropcap_outline(ci, p_ofs + ((rtl) ? Vector2() : Vector2(l.offset.x, 0)), l.dc_ol_size, l.dc_ol_color);
|
||||
bool skip_dc = (trim_chars && l.char_offset > visible_characters) || (trim_glyphs_ltr && (r_processed_glyphs >= visible_glyphs)) || (trim_glyphs_rtl && (r_processed_glyphs < total_glyphs - visible_glyphs));
|
||||
if (!skip_dc) {
|
||||
if (l.dc_ol_size > 0) {
|
||||
l.text_buf->draw_dropcap_outline(ci, p_ofs + ((rtl) ? Vector2() : Vector2(l.offset.x, 0)), l.dc_ol_size, l.dc_ol_color);
|
||||
}
|
||||
l.text_buf->draw_dropcap(ci, p_ofs + ((rtl) ? Vector2() : Vector2(l.offset.x, 0)), l.dc_color);
|
||||
}
|
||||
l.text_buf->draw_dropcap(ci, p_ofs + ((rtl) ? Vector2() : Vector2(l.offset.x, 0)), l.dc_color);
|
||||
|
||||
int line_count = 0;
|
||||
Size2 ctrl_size = get_size();
|
||||
|
@ -894,7 +897,8 @@ int RichTextLabel::_draw_line(ItemFrame *p_frame, int p_line, const Vector2 &p_o
|
|||
} break;
|
||||
}
|
||||
|
||||
if (!prefix.is_empty() && line == 0) {
|
||||
bool skip_prefix = (visible_chars_behavior == TextServer::VC_CHARS_BEFORE_SHAPING && l.char_offset == visible_characters) || (trim_chars && l.char_offset > visible_characters) || (trim_glyphs_ltr && (r_processed_glyphs >= visible_glyphs)) || (trim_glyphs_rtl && (r_processed_glyphs < total_glyphs - visible_glyphs));
|
||||
if (!prefix.is_empty() && line == 0 && !skip_prefix) {
|
||||
Ref<Font> font = theme_cache.normal_font;
|
||||
int font_size = theme_cache.normal_font_size;
|
||||
|
||||
|
|
Loading…
Reference in a new issue