aboutsummaryrefslogtreecommitdiffstats
path: root/meta-xfce
diff options
context:
space:
mode:
authorAndreas Müller <schnitzeltony@gmail.com>2019-05-06 10:15:43 +0200
committerKhem Raj <raj.khem@gmail.com>2019-05-06 08:32:04 -0700
commit97974627609958b6cc2b9ea19026bcf2a34a671f (patch)
tree6d0ea4d22f7636011eab44cc3c7c086172e5309e /meta-xfce
parent5a6e952b79aac64afd79d787a671a262cf1e90eb (diff)
downloadmeta-openembedded-contrib-97974627609958b6cc2b9ea19026bcf2a34a671f.tar.gz
xfce4-cpufreq-plugin: Fix memory leak and reduce CPU load
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-xfce')
-rw-r--r--meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin/0001-Fix-memory-leak-and-reduce-cpu-load-slightly.patch121
-rw-r--r--meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.1.bb1
2 files changed, 122 insertions, 0 deletions
diff --git a/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin/0001-Fix-memory-leak-and-reduce-cpu-load-slightly.patch b/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin/0001-Fix-memory-leak-and-reduce-cpu-load-slightly.patch
new file mode 100644
index 0000000000..92a6e8384d
--- /dev/null
+++ b/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin/0001-Fix-memory-leak-and-reduce-cpu-load-slightly.patch
@@ -0,0 +1,121 @@
+From f86486e128f62ed5a531163535d11f0aa0268928 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
+Date: Sun, 5 May 2019 20:45:26 +0200
+Subject: [PATCH] Fix memory-leak and reduce cpu-load slightly
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+* when setting font remove old css provider befor setting new
+ -> fix memory leak
+* do call cpufreq_label_set_font only on init and when font was changed
+ -> reduce cpu-load
+
+Fixes https://bugzilla.xfce.org/show_bug.cgi?id=15218
+
+Upstream-Status: Submitted [1]
+
+[1] https://bugzilla.xfce.org/attachment.cgi?id=8492
+
+Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
+---
+ panel-plugin/xfce4-cpufreq-configure.c | 4 ++++
+ panel-plugin/xfce4-cpufreq-plugin.c | 13 +++++++++++--
+ panel-plugin/xfce4-cpufreq-plugin.h | 2 ++
+ 3 files changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/panel-plugin/xfce4-cpufreq-configure.c b/panel-plugin/xfce4-cpufreq-configure.c
+index 1205fc9..48e72ff 100644
+--- a/panel-plugin/xfce4-cpufreq-configure.c
++++ b/panel-plugin/xfce4-cpufreq-configure.c
+@@ -85,7 +85,10 @@ button_fontname_update(GtkWidget *button, gboolean update_plugin)
+ }
+
+ if (update_plugin)
++ {
++ cpufreq_label_set_font ();
+ cpufreq_update_plugin (TRUE);
++ }
+ }
+
+
+@@ -155,6 +158,7 @@ button_fontcolor_clicked (GtkWidget *button, void *data)
+ gtk_color_chooser_get_rgba (GTK_COLOR_CHOOSER (button), color);
+ cpuFreq->options->fontcolor = gdk_rgba_to_string (color);
+ g_free (color);
++ cpufreq_label_set_font ();
+ cpufreq_update_plugin (TRUE);
+ }
+
+diff --git a/panel-plugin/xfce4-cpufreq-plugin.c b/panel-plugin/xfce4-cpufreq-plugin.c
+index e886121..8d7c9e5 100644
+--- a/panel-plugin/xfce4-cpufreq-plugin.c
++++ b/panel-plugin/xfce4-cpufreq-plugin.c
+@@ -44,6 +44,7 @@ cpufreq_label_set_font (void)
+ {
+ gchar *css = NULL, *css_font = NULL, *css_color = NULL;
+ GtkCssProvider *provider;
++ GtkStyleContext *context;
+ PangoFontDescription *font;
+
+ if (G_UNLIKELY (cpuFreq->label == NULL))
+@@ -76,11 +77,17 @@ cpufreq_label_set_font (void)
+ if (css)
+ {
+ provider = gtk_css_provider_new ();
++ context = GTK_STYLE_CONTEXT (gtk_widget_get_style_context (GTK_WIDGET (cpuFreq->label)));
++
++ if (currentProvider)
++ gtk_style_context_remove_provider (context, currentProvider);
+
+ gtk_css_provider_load_from_data (provider, css, -1, NULL);
+ gtk_style_context_add_provider (
+- GTK_STYLE_CONTEXT (gtk_widget_get_style_context (GTK_WIDGET (cpuFreq->label))),
++ context,
+ GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
++
++ currentProvider = provider;
+ }
+
+ g_free (css);
+@@ -420,7 +427,6 @@ cpufreq_update_plugin (gboolean reset_label_size)
+
+ if (cpuFreq->layout_changed)
+ {
+- cpufreq_label_set_font ();
+ cpufreq_widgets_layout ();
+ }
+
+@@ -601,6 +607,7 @@ cpufreq_widgets (void)
+
+ gtk_widget_show_all (cpuFreq->button);
+
++ cpufreq_label_set_font ();
+ cpufreq_update_plugin (TRUE);
+ }
+
+@@ -775,6 +782,8 @@ cpufreq_construct (XfcePanelPlugin *plugin)
+ {
+ xfce_textdomain (GETTEXT_PACKAGE, PACKAGE_LOCALE_DIR, "UTF-8");
+
++ currentProvider = NULL;
++
+ cpuFreq = g_new0 (CpuFreqPlugin, 1);
+ cpuFreq->options = g_new0 (CpuFreqPluginOptions, 1);
+ cpuFreq->plugin = plugin;
+diff --git a/panel-plugin/xfce4-cpufreq-plugin.h b/panel-plugin/xfce4-cpufreq-plugin.h
+index a6895e4..6338698 100644
+--- a/panel-plugin/xfce4-cpufreq-plugin.h
++++ b/panel-plugin/xfce4-cpufreq-plugin.h
+@@ -95,6 +95,8 @@ typedef struct
+
+ CpuFreqPlugin *cpuFreq;
+
++GtkCssProvider *currentProvider;
++
+ G_BEGIN_DECLS
+
+ void
+--
+2.20.1
+
diff --git a/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.1.bb b/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.1.bb
index 3f5587d803..6addc3b65d 100644
--- a/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.1.bb
+++ b/meta-xfce/recipes-panel-plugins/cpufreq/xfce4-cpufreq-plugin_1.2.1.bb
@@ -7,3 +7,4 @@ inherit xfce-panel-plugin
SRC_URI[md5sum] = "ccd8f0f7aef51bc4caf1049986d9614f"
SRC_URI[sha256sum] = "c5e044c0dc401d2066f208a3df82a588b3e51ff01425f155d0a1d0f8fce8f5b5"
+SRC_URI += "file://0001-Fix-memory-leak-and-reduce-cpu-load-slightly.patch"