diff options
author | Matthias Clasen <mclasen@redhat.com> | 2021-05-09 01:32:53 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2021-05-09 01:32:53 +0000 |
commit | 7570667d08c7bb968316a8a40c6e65cee9c4b35b (patch) | |
tree | 582ae0983ef4fb5857e652c4d4ef36d1b210709d /pango/pango-markup.c | |
parent | 99f4661a4f19802ba122fae09668a0b0e1cb7ca0 (diff) | |
parent | 00e222ab045f0956c16621aaadab4c76248f9bdb (diff) | |
download | pango-7570667d08c7bb968316a8a40c6e65cee9c4b35b.tar.gz |
Merge branch 'pango-1-46' into 'pango-1-46'pango-1-46
[1.46] Cherry pick various upstream fixes
See merge request GNOME/pango!322
Diffstat (limited to 'pango/pango-markup.c')
-rw-r--r-- | pango/pango-markup.c | 50 |
1 files changed, 20 insertions, 30 deletions
diff --git a/pango/pango-markup.c b/pango/pango-markup.c index b74c1ad4..d0b47016 100644 --- a/pango/pango-markup.c +++ b/pango/pango-markup.c @@ -677,8 +677,21 @@ text_handler (GMarkupParseContext *context G_GNUC_UNUSED, /* The underline should go underneath the char * we're setting as the next range_start */ - uline_index = md->index; - uline_len = g_utf8_next_char (p) - p; + if (md->attr_list != NULL) + { + /* Add the underline indicating the accelerator */ + PangoAttribute *attr; + + attr = pango_attr_underline_new (PANGO_UNDERLINE_LOW); + + uline_index = md->index; + uline_len = g_utf8_next_char (p) - p; + + attr->start_index = uline_index; + attr->end_index = uline_index + uline_len; + + pango_attr_list_change (md->attr_list, attr); + } /* set next range_start to include this char */ range_start = p; @@ -693,35 +706,12 @@ text_handler (GMarkupParseContext *context G_GNUC_UNUSED, } p = g_utf8_next_char (p); - } - - if (range_end) - { - g_string_append_len (md->text, - range_start, - range_end - range_start); - md->index += range_end - range_start; - } - else - { - g_string_append_len (md->text, - range_start, - end - range_start); - md->index += end - range_start; - } - - if (md->attr_list != NULL && uline_index >= 0) - { - /* Add the underline indicating the accelerator */ - PangoAttribute *attr; - - attr = pango_attr_underline_new (PANGO_UNDERLINE_LOW); - - attr->start_index = uline_index; - attr->end_index = uline_index + uline_len; + } - pango_attr_list_change (md->attr_list, attr); - } + g_string_append_len (md->text, + range_start, + end - range_start); + md->index += end - range_start; } } |