[gnome-initial-setup] assistant: Page becomes insensitive while applying



commit 4ceefd8982e670516c5d9222ab75b6a58bb659a0
Author: Stef Walter <stefw redhat com>
Date:   Sun May 26 13:43:36 2013 +0200

    assistant: Page becomes insensitive while applying
    
    https://bugzilla.gnome.org/show_bug.cgi?id=701039

 gnome-initial-setup/gis-assistant.c                |   14 ++++++++++++++
 .../pages/account/gis-account-page.c               |    1 +
 2 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/gnome-initial-setup/gis-assistant.c b/gnome-initial-setup/gis-assistant.c
index b3e8345..c45723f 100644
--- a/gnome-initial-setup/gis-assistant.c
+++ b/gnome-initial-setup/gis-assistant.c
@@ -251,6 +251,16 @@ update_navigation_buttons (GisAssistant *assistant)
 }
 
 static void
+update_applying_state (GisAssistant *assistant)
+{
+  gboolean applying = FALSE;
+  if (assistant->priv->current_page)
+    applying = gis_page_get_applying (assistant->priv->current_page);
+  gtk_widget_set_sensitive (assistant->priv->frame, !applying);
+  gtk_widget_set_sensitive (assistant->priv->forward, !applying);
+}
+
+static void
 gis_assistant_real_prepare (GisAssistant *assistant,
                             GisPage      *page)
 {
@@ -269,6 +279,8 @@ page_notify (GisPage      *page,
 
   if (strcmp (pspec->name, "title") == 0)
     g_object_notify_by_pspec (G_OBJECT (assistant), obj_props[PROP_TITLE]);
+  else if (strcmp (pspec->name, "applying") == 0)
+    update_applying_state (assistant);
   else
     update_navigation_buttons (assistant);
 }
@@ -349,6 +361,7 @@ _gis_assistant_current_page_changed (GisAssistant *assistant,
 
   if (priv->current_page != page) {
     priv->current_page = page;
+    update_applying_state (assistant);
     g_object_notify_by_pspec (G_OBJECT (assistant), obj_props[PROP_TITLE]);
     g_signal_emit (assistant, signals[PREPARE], 0, page);
   }
@@ -415,6 +428,7 @@ gis_assistant_init (GisAssistant *assistant)
   gis_assistant_locale_changed (assistant);
   gtk_box_pack_start (GTK_BOX (priv->main_layout), priv->action_area, FALSE, TRUE, 0);
 
+  update_applying_state (assistant);
   gtk_widget_show_all (GTK_WIDGET (assistant));
 }
 
diff --git a/gnome-initial-setup/pages/account/gis-account-page.c 
b/gnome-initial-setup/pages/account/gis-account-page.c
index 74c0fc6..b352960 100644
--- a/gnome-initial-setup/pages/account/gis-account-page.c
+++ b/gnome-initial-setup/pages/account/gis-account-page.c
@@ -1022,6 +1022,7 @@ gis_account_page_constructed (GObject *object)
 
   priv->action = gtk_toggle_button_new_with_mnemonic ("_Use Enterprise Login");
   g_signal_connect (priv->action, "toggled", G_CALLBACK (toggle_mode), page);
+  g_object_bind_property (page, "applying", priv->action, "sensitive", G_BINDING_INVERT_BOOLEAN);
   gtk_widget_show (priv->action);
   g_object_ref_sink (priv->action);
 


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