[Xfce4-commits] <xfce4-panel:master> Panel: Fix invalid autohide with socket dialog (bug #8617).

Nick Schermer noreply at xfce.org
Mon Apr 2 22:16:01 CEST 2012


Updating branch refs/heads/master
         to 6bc083dd44973b1f7d02c451d61a837feb8c019c (commit)
       from 26e104edc137b0572ce93c84cbd66ac4d5cb0db6 (commit)

commit 6bc083dd44973b1f7d02c451d61a837feb8c019c
Author: Nick Schermer <nick at xfce.org>
Date:   Mon Apr 2 22:08:17 2012 +0200

    Panel: Fix invalid autohide with socket dialog (bug #8617).

 panel/panel-preferences-dialog.c |    8 +++++++-
 1 files changed, 7 insertions(+), 1 deletions(-)

diff --git a/panel/panel-preferences-dialog.c b/panel/panel-preferences-dialog.c
index 05ccfcb..84d2d6f 100644
--- a/panel/panel-preferences-dialog.c
+++ b/panel/panel-preferences-dialog.c
@@ -180,6 +180,9 @@ panel_preferences_dialog_init (PanelPreferencesDialog *dialog)
   dialog->bindings = NULL;
   dialog->application = panel_application_get ();
 
+  /* block autohide */
+  panel_application_windows_sensitive (dialog->application, FALSE);
+
   /* load the builder data into the object */
   gtk_builder_add_from_string (GTK_BUILDER (dialog), panel_preferences_dialog_ui,
                                panel_preferences_dialog_ui_length, NULL);
@@ -187,7 +190,6 @@ panel_preferences_dialog_init (PanelPreferencesDialog *dialog)
   /* get the dialog */
   window = gtk_builder_get_object (GTK_BUILDER (dialog), "dialog");
   panel_return_if_fail (GTK_IS_WIDGET (window));
-  panel_application_take_dialog (dialog->application, GTK_WINDOW (window));
   g_signal_connect (G_OBJECT (window), "response",
       G_CALLBACK (panel_preferences_dialog_response), dialog);
 
@@ -287,6 +289,9 @@ panel_preferences_dialog_finalize (GObject *object)
   PanelPreferencesDialog *dialog = PANEL_PREFERENCES_DIALOG (object);
   GtkWidget              *itembar;
 
+  /* unblock autohide */
+  panel_application_windows_sensitive (dialog->application, TRUE);
+
   /* free bindings list */
   g_slist_free (dialog->bindings);
 
@@ -1373,6 +1378,7 @@ panel_preferences_dialog_show_internal (PanelWindow     *active,
       gtk_window_set_screen (GTK_WINDOW (window), screen);
 
       gtk_window_present (GTK_WINDOW (window));
+      panel_application_take_dialog (dialog_singleton->application, GTK_WINDOW (window));
     }
   else
     {


More information about the Xfce4-commits mailing list