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 Pkg-xfce-devel@lists.alioth.debian.org http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-xfce-devel