summaryrefslogtreecommitdiff
path: root/pango/ellipsize.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2022-01-25 20:54:04 -0500
committerMatthias Clasen <mclasen@redhat.com>2022-01-25 20:54:04 -0500
commit32ee6dacf464ad1f21422124edef4711263cc344 (patch)
treef3c55a2057f80815d24f99f5ce533fa2cbfeb9c0 /pango/ellipsize.c
parent40aa6e1f0dd197ec198d209d912df8ca8e693c0e (diff)
downloadpango-32ee6dacf464ad1f21422124edef4711263cc344.tar.gz
ellipsize: Filter attributes
When collecting attributes to itemize and shape the ellipsize, don't pick up rendering attributes. This fixes occasional miscolored ellipses if the beginning of the line is colored.
Diffstat (limited to 'pango/ellipsize.c')
-rw-r--r--pango/ellipsize.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/pango/ellipsize.c b/pango/ellipsize.c
index 1a7f8eb6..c58efc34 100644
--- a/pango/ellipsize.c
+++ b/pango/ellipsize.c
@@ -338,13 +338,19 @@ shape_ellipsis (EllipsizeState *state)
/* Create an attribute list
*/
run_attrs = pango_attr_iterator_get_attrs (state->gap_start_attr);
+ int s, e;
+ pango_attr_iterator_range (state->gap_start_attr, &s, &e);
for (l = run_attrs; l; l = l->next)
{
PangoAttribute *attr = l->data;
attr->start_index = 0;
attr->end_index = G_MAXINT;
- pango_attr_list_insert (&attrs, attr);
+ if (pango_attribute_affects_itemization (attr, NULL) ||
+ pango_attribute_affects_break_or_shape (attr, NULL))
+ pango_attr_list_insert (&attrs, attr);
+ else
+ pango_attribute_destroy (attr);
}
g_slist_free (run_attrs);