From 327c12b5397641e4aaf56b968f9af3c53fe15839 Mon Sep 17 00:00:00 2001
From: Michael Webster <miketwebster@gmail.com>
Date: Tue, 17 Mar 2015 20:20:16 -0400
Subject: [PATCH 1/2] gs-window-x11.c: Fix some leaks, readability
---
src/gs-window-x11.c | 25 ++++++++++++++++++++-----
1 file changed, 20 insertions(+), 5 deletions(-)
diff --git a/src/gs-window-x11.c b/src/gs-window-x11.c
index dcdd90a..2716a2f 100644
--- a/src/gs-window-x11.c
+++ b/src/gs-window-x11.c
@@ -2115,9 +2115,17 @@ update_clock (GSWindow *window)
char *markup;
if (window->priv->away_message != NULL && g_strcmp0(window->priv->away_message, "") != 0) {
- markup = g_strdup_printf ("%s\n\n<b><span font_desc=\"Ubuntu 14\" foreground=\"#CCCCCC\">%s</span></b>\n<b><span font_desc=\"Ubuntu 10\" foreground=\"#ACACAC\"> ~ %s</span></b>", gnome_wall_clock_get_clock (window->priv->clock_tracker), g_markup_escape_text(window->priv->away_message, -1), get_user_display_name());
+ gchar *user_name = get_user_display_name ();
+ markup = g_strdup_printf ("%s\n\n<b><span font_desc=\"Ubuntu 14\" foreground=\"#CCCCCC\">%s</span></b>"
+ "\n<b><span font_desc=\"Ubuntu 10\" foreground=\"#ACACAC\"> ~ %s</span></b>",
+ gnome_wall_clock_get_clock (window->priv->clock_tracker),
+ window->priv->away_message, user_name);
+ g_free (user_name);
} else {
- markup = g_strdup_printf ("%s\n\n<b><span font_desc=\"%s\" foreground=\"#CCCCCC\">%s</span></b>", gnome_wall_clock_get_clock (window->priv->clock_tracker), window->priv->font_message, g_markup_escape_text(window->priv->default_message, -1));
+ markup = g_strdup_printf ("%s\n\n<b><span font_desc=\"%s\" foreground=\"#CCCCCC\">%s</span></b>",
+ gnome_wall_clock_get_clock (window->priv->clock_tracker),
+ window->priv->font_message,
+ window->priv->default_message);
}
gtk_label_set_markup (GTK_LABEL (window->priv->clock), markup);
@@ -2161,7 +2169,7 @@ gs_window_set_away_message (GSWindow *window,
g_free (window->priv->away_message);
if (message) {
- window->priv->away_message = g_strdup (message);
+ window->priv->away_message = g_markup_escape_text (message, -1);
} else {
window->priv->away_message = NULL;
}
@@ -2174,6 +2182,7 @@ settings_changed_cb (GSettings *settings, const gchar *key, gpointer user_data)
{
GSWindow *window = user_data;
+ g_clear_pointer (&window->priv->font_message, g_free);
window->priv->font_message = g_settings_get_string (window->priv->settings, "font-message");
}
@@ -2190,6 +2199,8 @@ gs_window_init (GSWindow *window)
window->priv->last_x = -1;
window->priv->last_y = -1;
+ window->priv->settings = g_settings_new ("org.cinnamon.desktop.screensaver");
+
gtk_window_set_decorated (GTK_WINDOW (window), FALSE);
gtk_window_set_skip_taskbar_hint (GTK_WINDOW (window), TRUE);
@@ -2235,7 +2246,9 @@ gs_window_init (GSWindow *window)
gtk_widget_set_size_request(window->priv->vbox,450, -1);
// Default message
- window->priv->default_message = g_settings_get_string(g_settings_new ("org.cinnamon.desktop.screensaver"), "default-message");
+ gchar *unesc = g_settings_get_string(window->priv->settings, "default-message");
+ window->priv->default_message = g_markup_escape_text (unesc, -1);
+ g_free (unesc);
// Clock -- need to find a way to make it appear on the bottom-left side of the background without shifting the position of the main dialog box
window->priv->clock = gtk_label_new (NULL);
@@ -2259,7 +2272,6 @@ gs_window_init (GSWindow *window)
gtk_widget_set_hexpand (grid, TRUE);
gtk_widget_set_vexpand (grid, TRUE);
- window->priv->settings = g_settings_new ("org.cinnamon.desktop.screensaver");
window->priv->font_message = g_settings_get_string (window->priv->settings, "font-message");
g_signal_connect (window->priv->settings, "changed", G_CALLBACK (settings_changed_cb), window);
@@ -2299,6 +2311,7 @@ gs_window_finalize (GObject *object)
g_free (window->priv->away_message);
g_free (window->priv->logout_command);
g_free (window->priv->keyboard_command);
+ g_free (window->priv->font_message);
if (window->priv->clock_tracker) {
g_object_unref (window->priv->clock_tracker);
@@ -2326,6 +2339,8 @@ gs_window_finalize (GObject *object)
cairo_surface_destroy (window->priv->background_surface);
}
+ g_clear_object (&window->priv->settings);
+
G_OBJECT_CLASS (gs_window_parent_class)->finalize (object);
}
--
2.1.0