[Xfce4-commits] <xfce4-panel:devel> Fix preferences dialog sensitivity.

Nick Schermer noreply at xfce.org
Sat Feb 6 22:08:01 CET 2010


Updating branch refs/heads/devel
         to 21a3cca1d039c9150d3647102db608425e861c4b (commit)
       from 3ce58e96dc532e113a4803ff0c9b3ffe0fd83759 (commit)

commit 21a3cca1d039c9150d3647102db608425e861c4b
Author: Nick Schermer <nick at xfce.org>
Date:   Sat Feb 6 22:05:42 2010 +0100

    Fix preferences dialog sensitivity.

 panel/panel-preferences-dialog.c |   65 ++++++++++++++++++++++----------------
 1 files changed, 38 insertions(+), 27 deletions(-)

diff --git a/panel/panel-preferences-dialog.c b/panel/panel-preferences-dialog.c
index bcb7482..d93b84b 100644
--- a/panel/panel-preferences-dialog.c
+++ b/panel/panel-preferences-dialog.c
@@ -525,13 +525,45 @@ panel_preferences_dialog_output_changed (GtkComboBox            *combobox,
 
 
 static void
+panel_preferences_dialog_panel_sensitive (PanelPreferencesDialog *dialog)
+{
+
+  GObject   *object;
+  gboolean   locked = TRUE;
+  gint       n_windows;
+
+  panel_return_if_fail (PANEL_IS_PREFERENCES_DIALOG (dialog));
+
+  if (G_LIKELY (dialog->active != NULL))
+    locked = panel_window_get_locked (dialog->active);
+
+  object = gtk_builder_get_object (GTK_BUILDER (dialog), "panel-remove");
+  panel_return_if_fail (GTK_IS_WIDGET (object));
+  n_windows = panel_application_get_n_windows (dialog->application);
+  gtk_widget_set_sensitive (GTK_WIDGET (object), !locked && n_windows > 1);
+
+  object = gtk_builder_get_object (GTK_BUILDER (dialog), "panel-add");
+  panel_return_if_fail (GTK_IS_WIDGET (object));
+  gtk_widget_set_sensitive (GTK_WIDGET (object),
+      !panel_application_get_locked (dialog->application));
+
+  object = gtk_builder_get_object (GTK_BUILDER (dialog), "notebook");
+  panel_return_if_fail (GTK_IS_WIDGET (object));
+  gtk_widget_set_sensitive (GTK_WIDGET (object), !locked);
+
+  object = gtk_builder_get_object (GTK_BUILDER (dialog), "item-add");
+  panel_return_if_fail (GTK_IS_WIDGET (object));
+  gtk_widget_set_sensitive (GTK_WIDGET (object), !locked);
+}
+
+
+
+static void
 panel_preferences_dialog_panel_combobox_changed (GtkComboBox            *combobox,
                                                  PanelPreferencesDialog *dialog)
 {
   gint       nth;
   GtkWidget *itembar;
-  GObject   *object;
-  gboolean   locked = TRUE;
 
   panel_return_if_fail (GTK_IS_COMBO_BOX (combobox));
   panel_return_if_fail (PANEL_IS_PREFERENCES_DIALOG (dialog));
@@ -561,23 +593,9 @@ panel_preferences_dialog_panel_combobox_changed (GtkComboBox            *combobo
 
       /* update the items treeview */
       panel_preferences_dialog_item_store_rebuild (itembar, dialog);
-
-      /* make the entire notebook insensitive when the window is locked */
-      locked = panel_window_get_locked (dialog->active);
-      object = gtk_builder_get_object (GTK_BUILDER (dialog), "notebook");
-      panel_return_if_fail (GTK_IS_WIDGET (object));
-      gtk_widget_set_sensitive (GTK_WIDGET (object), !locked);
     }
 
-  /* sensitivity of the remove button */
-  object = gtk_builder_get_object (GTK_BUILDER (dialog), "panel-remove");
-  panel_return_if_fail (GTK_IS_WIDGET (object));
-  gtk_widget_set_sensitive (GTK_WIDGET (object), !locked);
-
-  /* sensitivity of the add button in item tab */
-  object = gtk_builder_get_object (GTK_BUILDER (dialog), "item-add");
-  panel_return_if_fail (GTK_IS_WIDGET (object));
-  gtk_widget_set_sensitive (GTK_WIDGET (object), !!(dialog->active != NULL));
+  panel_preferences_dialog_panel_sensitive (dialog);
 }
 
 
@@ -585,7 +603,7 @@ panel_preferences_dialog_panel_combobox_changed (GtkComboBox            *combobo
 static void
 panel_preferences_dialog_panel_combobox_rebuild (PanelPreferencesDialog *dialog)
 {
-  GObject *store, *combo, *object;
+  GObject *store, *combo;
   gint     n, n_items;
   gchar   *name;
 
@@ -612,18 +630,11 @@ panel_preferences_dialog_panel_combobox_rebuild (PanelPreferencesDialog *dialog)
       g_free (name);
     }
 
-  /* set sensitivity of some widgets */
-  object = gtk_builder_get_object (GTK_BUILDER (dialog), "notebook");
-  panel_return_if_fail (GTK_IS_WIDGET (object));
-  gtk_widget_set_sensitive (GTK_WIDGET (object), !!(n_items > 0));
-
-  object = gtk_builder_get_object (GTK_BUILDER (dialog), "panel-remove");
-  panel_return_if_fail (GTK_IS_WIDGET (object));
-  gtk_widget_set_sensitive (GTK_WIDGET (object), !!(n_items > 1));
-
   /* unblock signal */
   g_signal_handlers_unblock_by_func (combo,
       panel_preferences_dialog_panel_combobox_changed, dialog);
+
+  panel_preferences_dialog_panel_sensitive (dialog);
 }
 
 



More information about the Xfce4-commits mailing list