From c9ec0527dd3002baf93f78ee8490f67980951c6f Mon Sep 17 00:00:00 2001 From: deepend Date: Sun, 25 Jan 2026 12:19:44 -0700 Subject: [PATCH] Avoided re-adding the same GTK3 palette CSS provider by tracking when the provider is first created before attaching it to the style context. --- src/fe-gtk/gtkutil.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/fe-gtk/gtkutil.c b/src/fe-gtk/gtkutil.c index 87c04892..1669191f 100644 --- a/src/fe-gtk/gtkutil.c +++ b/src/fe-gtk/gtkutil.c @@ -147,6 +147,7 @@ gtkutil_apply_palette (GtkWidget *widget, const GdkColor *bg, const GdkColor *fg GtkStyleContext *context = gtk_widget_get_style_context (widget); GtkCssProvider *provider = g_object_get_data (G_OBJECT (widget), "zoitechat-palette-provider"); + gboolean new_provider = FALSE; GString *css; gchar *bg_color = NULL; gchar *fg_color = NULL; @@ -168,6 +169,7 @@ gtkutil_apply_palette (GtkWidget *widget, const GdkColor *bg, const GdkColor *fg provider = gtk_css_provider_new (); g_object_set_data_full (G_OBJECT (widget), "zoitechat-palette-provider", provider, g_object_unref); + new_provider = TRUE; } css = g_string_new ("."); @@ -191,8 +193,11 @@ gtkutil_apply_palette (GtkWidget *widget, const GdkColor *bg, const GdkColor *fg g_string_append (css, " }"); gtk_css_provider_load_from_data (provider, css->str, -1, NULL); - gtk_style_context_add_provider (context, GTK_STYLE_PROVIDER (provider), - GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + if (new_provider) + { + gtk_style_context_add_provider (context, GTK_STYLE_PROVIDER (provider), + GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + } gtk_style_context_add_class (context, class_name); g_string_free (css, TRUE);