[gimp] app: properly disconnect from the old shell in gimp_tool_dialog_set_shell()



commit 8e948d29e0e44608e3cfb47d37f289434d7e36a2
Author: Michael Natterer <mitch gimp org>
Date:   Thu Jun 5 22:19:23 2014 +0200

    app: properly disconnect from the old shell in gimp_tool_dialog_set_shell()
    
    Also clean up the function a bit.

 app/display/gimptooldialog.c |   13 ++++++-------
 1 files changed, 6 insertions(+), 7 deletions(-)
---
diff --git a/app/display/gimptooldialog.c b/app/display/gimptooldialog.c
index 214c9ac..9adefbb 100644
--- a/app/display/gimptooldialog.c
+++ b/app/display/gimptooldialog.c
@@ -162,25 +162,24 @@ gimp_tool_dialog_set_shell (GimpToolDialog   *tool_dialog,
       g_signal_handlers_disconnect_by_func (private->shell,
                                             gimp_tool_dialog_shell_unmap,
                                             tool_dialog);
-      private->shell = NULL;
+
+      gtk_window_set_transient_for (GTK_WINDOW (tool_dialog), NULL);
     }
 
   private->shell = shell;
 
   if (private->shell)
     {
-      GtkWidget *toplevel;
+      GtkWidget *toplevel = gtk_widget_get_toplevel (GTK_WIDGET (shell));
+
+      gtk_window_set_transient_for (GTK_WINDOW (tool_dialog),
+                                    GTK_WINDOW (toplevel));
 
       g_signal_connect_object (private->shell, "unmap",
                                G_CALLBACK (gimp_tool_dialog_shell_unmap),
                                tool_dialog, 0);
-
       g_object_add_weak_pointer (G_OBJECT (private->shell),
                                  (gpointer) &private->shell);
-      toplevel = gtk_widget_get_toplevel (GTK_WIDGET (shell));
-
-      gtk_window_set_transient_for (GTK_WINDOW (tool_dialog),
-                                    GTK_WINDOW (toplevel));
     }
 }
 


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