[Xfce4-commits] <xfce4-terminal:nick/dropdown> Also keep track of dropdown preferences.

Nick Schermer noreply at xfce.org
Sat Dec 29 15:58:03 CET 2012


Updating branch refs/heads/nick/dropdown
         to 00a1a09d2a9227e8f38ba35574832fb5b36cdda4 (commit)
       from 32a435f145684caefd0046ada4a64d689ec4d110 (commit)

commit 00a1a09d2a9227e8f38ba35574832fb5b36cdda4
Author: Nick Schermer <nick at xfce.org>
Date:   Sat Dec 29 15:56:05 2012 +0100

    Also keep track of dropdown preferences.

 terminal/terminal-window-dropdown.c |   20 +++++++++++++++++---
 1 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/terminal/terminal-window-dropdown.c b/terminal/terminal-window-dropdown.c
index 4d82442..e5e8db1 100644
--- a/terminal/terminal-window-dropdown.c
+++ b/terminal/terminal-window-dropdown.c
@@ -377,7 +377,6 @@ terminal_window_dropdown_focus_out_event (GtkWidget     *widget,
   /* check if keep open is not enabled */
   if (gtk_widget_get_visible (widget)
       && TERMINAL_WINDOW (dropdown)->n_child_windows == 0
-      && dropdown->preferences_dialog == NULL
       && gtk_grab_get_current () == NULL) /* popup menu check */
     {
       if (!gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (dropdown->keep_open)))
@@ -511,6 +510,20 @@ terminal_window_dropdown_toggle_real (TerminalWindowDropdown *dropdown,
 
 
 static void
+terminal_window_dropdown_preferences_died (gpointer  user_data,
+                                           GObject  *where_the_object_was)
+{
+  TerminalWindowDropdown *dropdown = TERMINAL_WINDOW_DROPDOWN (user_data);
+
+  dropdown->preferences_dialog = NULL;
+  TERMINAL_WINDOW (dropdown)->n_child_windows--;
+
+  terminal_activate_window (GTK_WINDOW (dropdown));
+}
+
+
+
+static void
 terminal_window_dropdown_preferences (TerminalWindowDropdown *dropdown)
 {
   if (dropdown->preferences_dialog == NULL)
@@ -518,8 +531,9 @@ terminal_window_dropdown_preferences (TerminalWindowDropdown *dropdown)
       dropdown->preferences_dialog = terminal_preferences_dropdown_dialog_new ();
       if (G_LIKELY (dropdown->preferences_dialog != NULL))
         {
-          g_object_add_weak_pointer (G_OBJECT (dropdown->preferences_dialog),
-                                     (gpointer) &dropdown->preferences_dialog);
+          TERMINAL_WINDOW (dropdown)->n_child_windows++;
+          g_object_weak_ref (G_OBJECT (dropdown->preferences_dialog),
+                             terminal_window_dropdown_preferences_died, dropdown);
         }
     }
 


More information about the Xfce4-commits mailing list