[Xfce4-commits] [panel-plugins/xfce4-wavelan-plugin] 02/02: use a singleton for GtkCssProvider, should leak less memory

noreply at xfce.org noreply at xfce.org
Wed Dec 28 22:04:57 CET 2016


This is an automated email from the git hooks/post-receive script.

landry pushed a commit to branch master
in repository panel-plugins/xfce4-wavelan-plugin.

commit d4c76389d63199636c52e8a7a0ce80d5f2fde591
Author: Landry Breuil <landry at xfce.org>
Date:   Wed Dec 28 22:04:47 2016 +0100

    use a singleton for GtkCssProvider, should leak less memory
---
 panel-plugin/wavelan.c | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/panel-plugin/wavelan.c b/panel-plugin/wavelan.c
index e708dc2..d917284 100644
--- a/panel-plugin/wavelan.c
+++ b/panel-plugin/wavelan.c
@@ -64,6 +64,9 @@ typedef struct
   GtkWidget *image;
   GtkWidget *signal;
   GtkWidget *tooltip_text;
+#if GTK_CHECK_VERSION (3, 16, 0)
+  GtkCssProvider *css_provider;
+#endif
 
   XfcePanelPlugin *plugin;
   
@@ -77,7 +80,6 @@ wavelan_set_state(t_wavelan *wavelan, gint state)
 {  
   GdkRGBA color;
 #if GTK_CHECK_VERSION (3, 16, 0)
-  GtkCssProvider *css_provider;
   gchar *css, *color_str;
 #if GTK_CHECK_VERSION (3, 20, 0)
   gchar * cssminsizes = "min-width: 4px; min-height: 0px";
@@ -92,7 +94,7 @@ wavelan_set_state(t_wavelan *wavelan, gint state)
   gchar signal_color_strong[] = "#06c500";
   
   /* state = 0 -> no link, =-1 -> error */
-  TRACE ("Entered wavelan_set_state, state = %d", state);
+  DBG ("Entered wavelan_set_state, state = %d", state);
 
   if(state > 100)
     state = 100;
@@ -147,13 +149,7 @@ wavelan_set_state(t_wavelan *wavelan, gint state)
   }
 
 #if GTK_CHECK_VERSION (3, 16, 0)
-  /* Setup Gtk style */
-  css_provider = gtk_css_provider_new ();
-  gtk_css_provider_load_from_data (css_provider, css, strlen(css), NULL);
-  gtk_style_context_add_provider (
-      GTK_STYLE_CONTEXT (gtk_widget_get_style_context (GTK_WIDGET (wavelan->signal))),
-      GTK_STYLE_PROVIDER (css_provider),
-      GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
+  gtk_css_provider_load_from_data (wavelan->css_provider, css, strlen(css), NULL);
   g_free(css);
 #endif
 
@@ -353,6 +349,11 @@ wavelan_new(XfcePanelPlugin *plugin)
 
   /* setup progressbar */
   wavelan->signal = gtk_progress_bar_new();
+  wavelan->css_provider = gtk_css_provider_new ();
+  gtk_style_context_add_provider (
+      GTK_STYLE_CONTEXT (gtk_widget_get_style_context (GTK_WIDGET (wavelan->signal))),
+      GTK_STYLE_PROVIDER (wavelan->css_provider),
+      GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
   wavelan->image = GTK_WIDGET(xfce_panel_image_new_from_source("network-wireless"));
 
   gtk_box_pack_start(GTK_BOX(wavelan->box), GTK_WIDGET(wavelan->image), FALSE, FALSE, 0);

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Xfce4-commits mailing list