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