[gdl] Set name for floating windows correctly.



commit 94fd2956f6a9bfb69f580b29354e29c7f8814ec2
Author: Johannes Schmid <jhs gnome org>
Date:   Sun Apr 25 21:17:45 2010 +0200

    Set name for floating windows correctly.
    
    This was broken due to a side-effect of setting "long-name" as construct property for
    GdlDockObject.

 gdl/gdl-dock.c |   27 ++++++++++++++++-----------
 1 files changed, 16 insertions(+), 11 deletions(-)
---
diff --git a/gdl/gdl-dock.c b/gdl/gdl-dock.c
index 06984bd..4620b95 100644
--- a/gdl/gdl-dock.c
+++ b/gdl/gdl-dock.c
@@ -458,7 +458,6 @@ gdl_dock_set_title (GdlDock *dock)
 {
     GdlDockObject *object = GDL_DOCK_OBJECT (dock);
     gchar         *title = NULL;
-    gboolean       free_title = FALSE;
     
     if (!dock->_priv->window)
         return;
@@ -468,25 +467,22 @@ gdl_dock_set_title (GdlDock *dock)
     }
     else if (object->master) {
         g_object_get (object->master, "default-title", &title, NULL);
-        free_title = TRUE;
     }
 
     if (!title && dock->root) {
         g_object_get (dock->root, "long-name", &title, NULL);
-        free_title = TRUE;
     }
     
     if (!title) {
         /* set a default title in the long_name */
         dock->_priv->auto_title = TRUE;
-        free_title = FALSE;
-        title = object->long_name = g_strdup_printf (
+        title = g_strdup_printf (
             _("Dock #%d"), GDL_DOCK_MASTER (object->master)->dock_number++);
     }
 
     gtk_window_set_title (GTK_WINDOW (dock->_priv->window), title);
-    if (free_title)
-        g_free (title);
+
+    g_free (title);
 }
 
 static void
@@ -495,12 +491,21 @@ gdl_dock_notify_cb (GObject    *object,
                     gpointer    user_data)
 {
     GdlDock *dock;
+    gchar* long_name;
     
     g_return_if_fail (object != NULL || GDL_IS_DOCK (object));
-    
-    dock = GDL_DOCK (object);
-    dock->_priv->auto_title = FALSE;
-    gdl_dock_set_title (dock);
+
+    g_object_get (object, "long-name", &long_name, NULL);
+
+    g_message ("Notify long_name: %s", long_name);
+
+    if (long_name)
+    {
+        dock = GDL_DOCK (object);
+        dock->_priv->auto_title = FALSE;
+        gdl_dock_set_title (dock);
+    }
+    g_free (long_name);
 }
 
 static void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]