I've been running xfce4-battery-plugin with this patch for a week and
noticed no increase in resource usage.
As far as I understand it, creating a new GtkCssProvider every second
made it hard for libgtk to process new requests to change the
progressbar style.
Please let me know if this patch needs to be improved.
--
Best regards,
Ivan
--- - 2017-11-27 15:28:44.041233353 +0300
+++ panel-plugin/battery.c 2017-11-27 15:28:14.908550361 +0300
@@ -104,6 +104,7 @@
GtkLabel *acfan;
GtkLabel *temp;
GtkWidget *image;
+ GtkCssProvider *css_provider;
} t_battmon;
typedef struct
@@ -608,11 +609,10 @@
gchar *css = g_strdup_printf("progressbar progress { background-color: %s; background-image: none; }",
#endif
gdk_rgba_to_string(color));
- GtkCssProvider *css_provider = gtk_css_provider_new ();
- gtk_css_provider_load_from_data (css_provider, css, strlen(css), NULL);
+ gtk_css_provider_load_from_data (battmon->css_provider, css, strlen(css), NULL);
gtk_style_context_add_provider (
GTK_STYLE_CONTEXT (gtk_widget_get_style_context (GTK_WIDGET (battmon->battstatus))),
- GTK_STYLE_PROVIDER (css_provider),
+ GTK_STYLE_PROVIDER (battmon->css_provider),
GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
g_free(css);
#else
@@ -674,6 +674,7 @@
battmon->ebox = gtk_box_new(xfce_panel_plugin_get_orientation(battmon->plugin), 0);
battmon->battstatus = gtk_progress_bar_new();
+ battmon->css_provider = gtk_css_provider_new ();
gtk_progress_bar_set_fraction(GTK_PROGRESS_BAR(battmon->battstatus), 0.0);
gtk_orientable_set_orientation(GTK_ORIENTABLE(battmon->battstatus),
_______________________________________________
Pkg-xfce-devel mailing list
[email protected]
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-xfce-devel