[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