diff options
| author | Matthias Clasen <mclasen@redhat.com> | 2021-09-03 18:16:33 +0000 |
|---|---|---|
| committer | Matthias Clasen <mclasen@redhat.com> | 2021-09-03 18:16:33 +0000 |
| commit | 850aebea5d6f079c6a537dfd256322a88d9822b3 (patch) | |
| tree | 8cf8d575355338ac26ce6487f6a0b46708fe5147 | |
| parent | 64d2d7074fa59a4f1d261a866b564eb46ed45007 (diff) | |
| parent | 26e632e54958e42dcafedd5b26be1cd150eecb4b (diff) | |
| download | gtk+-850aebea5d6f079c6a537dfd256322a88d9822b3.tar.gz | |
Merge branch 'matthiasc/for-master' into 'master'
widget: Redraw when font options change
See merge request GNOME/gtk!3917
| -rw-r--r-- | gtk/gtkwidget.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 6ef2add082..4d95822fc9 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -6427,7 +6427,7 @@ gtk_widget_get_effective_font_map (GtkWidget *widget) return pango_cairo_font_map_get_default (); } -static void +static gboolean update_pango_context (GtkWidget *widget, PangoContext *context) { @@ -6436,6 +6436,9 @@ update_pango_context (GtkWidget *widget, PangoFontDescription *font_desc; GtkSettings *settings; cairo_font_options_t *font_options; + guint old_serial; + + old_serial = pango_context_get_serial (context); font_desc = gtk_css_style_get_pango_font (style); pango_context_set_font_description (context, font_desc); @@ -6475,6 +6478,8 @@ update_pango_context (GtkWidget *widget, } pango_context_set_font_map (context, gtk_widget_get_effective_font_map (widget)); + + return old_serial != pango_context_get_serial (context); } static void @@ -6482,8 +6487,11 @@ gtk_widget_update_pango_context (GtkWidget *widget) { PangoContext *context = gtk_widget_peek_pango_context (widget); - if (context) - update_pango_context (widget, context); + if (!context) + return; + + if (update_pango_context (widget, context)) + gtk_widget_queue_draw (widget); } /** |
