[gnome-initial-setup] language: Ensure accountsservice is initialized



commit 50974ba0246b572db5917b322ffd3e6b4528a09c
Author: Michael Wood <michael g wood intel com>
Date:   Tue Apr 30 15:17:53 2013 +0100

    language: Ensure accountsservice is initialized
    
    Ensure accountservice has loaded the user before trying to set the
    language.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=698611

 .../pages/language/gis-language-page.c             |   20 +++++++++++++++++++-
 1 files changed, 19 insertions(+), 1 deletions(-)
---
diff --git a/gnome-initial-setup/pages/language/gis-language-page.c 
b/gnome-initial-setup/pages/language/gis-language-page.c
index 4fce033..b6279d2 100644
--- a/gnome-initial-setup/pages/language/gis-language-page.c
+++ b/gnome-initial-setup/pages/language/gis-language-page.c
@@ -99,6 +99,18 @@ change_locale_permission_acquired (GObject      *source,
 }
 
 static void
+user_loaded (GObject    *object,
+             GParamSpec *pspec,
+             gpointer    user_data)
+{
+  gchar *new_locale_id = user_data;
+
+  act_user_set_language (ACT_USER (object), new_locale_id);
+
+  g_free (new_locale_id);
+}
+
+static void
 language_changed (CcLanguageChooser  *chooser,
                   GParamSpec         *pspec,
                   GisLanguagePage    *page)
@@ -123,7 +135,13 @@ language_changed (CcLanguageChooser  *chooser,
   }
   user = act_user_manager_get_user (act_user_manager_get_default (),
                                     g_get_user_name ());
-  act_user_set_language (user, priv->new_locale_id);
+  if (act_user_is_loaded (user))
+    act_user_set_language (user, priv->new_locale_id);
+  else
+    g_signal_connect (user,
+                      "notify::is-loaded",
+                      G_CALLBACK (user_loaded),
+                      g_strdup (priv->new_locale_id));
 
   gis_driver_set_user_language (driver, priv->new_locale_id);
 }


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