[gnome-initial-setup] accounts: Fix a crash on changing language



commit 2886670acb776a2d2476ad26b49523f0be050db0
Author: Matthias Clasen <mclasen redhat com>
Date:   Tue Feb 16 08:59:54 2016 -0500

    accounts: Fix a crash on changing language
    
    The recent refactoring of small-screen handling caused this;
    make it simpler by just using a binding, as we do in other pages.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=762092

 .../pages/account/gis-account-page-enterprise.c    |   15 +++++++++------
 .../pages/account/gis-account-page-enterprise.ui   |    1 -
 2 files changed, 9 insertions(+), 7 deletions(-)
---
diff --git a/gnome-initial-setup/pages/account/gis-account-page-enterprise.c 
b/gnome-initial-setup/pages/account/gis-account-page-enterprise.c
index 4c9feb3..2ec201d 100644
--- a/gnome-initial-setup/pages/account/gis-account-page-enterprise.c
+++ b/gnome-initial-setup/pages/account/gis-account-page-enterprise.c
@@ -740,16 +740,18 @@ on_entry_changed (GtkEditable *editable,
 }
 
 static void
-gis_account_page_enterprise_hierarchy_changed (GtkWidget *widget,
-                                               GtkWidget *previous_toplevel)
+gis_account_page_enterprise_realize (GtkWidget *widget)
 {
   GisAccountPageEnterprise *page = GIS_ACCOUNT_PAGE_ENTERPRISE (widget);
   GisAccountPageEnterprisePrivate *priv = gis_account_page_enterprise_get_instance_private (page);
   GtkWidget *gis_page;
 
   gis_page = gtk_widget_get_ancestor (widget, GIS_TYPE_PAGE);
-  if (gis_driver_is_small_screen (GIS_PAGE (gis_page)->driver))
-    gtk_widget_hide (priv->image);
+  g_object_bind_property (gis_page, "small-screen",
+                          priv->image, "visible",
+                          G_BINDING_SYNC_CREATE | G_BINDING_INVERT_BOOLEAN);
+
+  GTK_WIDGET_CLASS (gis_account_page_enterprise_parent_class)->realize (widget);
 }
 
 static void
@@ -799,10 +801,13 @@ static void
 gis_account_page_enterprise_class_init (GisAccountPageEnterpriseClass *klass)
 {
   GObjectClass *object_class = G_OBJECT_CLASS (klass);
+  GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
 
   object_class->constructed = gis_account_page_enterprise_constructed;
   object_class->dispose = gis_account_page_enterprise_dispose;
 
+  widget_class->realize = gis_account_page_enterprise_realize;
+
   gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (klass), 
"/org/gnome/initial-setup/gis-account-page-enterprise.ui");
 
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAccountPageEnterprise, login);
@@ -818,8 +823,6 @@ gis_account_page_enterprise_class_init (GisAccountPageEnterpriseClass *klass)
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAccountPageEnterprise, 
join_domain);
   gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (klass), GisAccountPageEnterprise, 
join_computer);
 
-  gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (klass), 
gis_account_page_enterprise_hierarchy_changed);
-
   signals[VALIDATION_CHANGED] = g_signal_new ("validation-changed", GIS_TYPE_ACCOUNT_PAGE_ENTERPRISE,
                                               G_SIGNAL_RUN_LAST, 0, NULL, NULL, NULL,
                                               G_TYPE_NONE, 0);
diff --git a/gnome-initial-setup/pages/account/gis-account-page-enterprise.ui 
b/gnome-initial-setup/pages/account/gis-account-page-enterprise.ui
index b9b057e..1f4178e 100644
--- a/gnome-initial-setup/pages/account/gis-account-page-enterprise.ui
+++ b/gnome-initial-setup/pages/account/gis-account-page-enterprise.ui
@@ -2,7 +2,6 @@
 <interface>
   <!-- interface-requires gtk+ 3.0 -->
   <template class="GisAccountPageEnterprise" parent="GtkBin">
-    <signal name="hierarchy-changed" handler="gis_account_page_enterprise_hierarchy_changed"/>
     <child>
       <object class="GtkBox" id="area">
         <property name="visible">True</property>


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