[gnome-initial-setup/gnome-3-8: 11/12] language: Make sure the initially selected language gets saved



commit 41766ac96be7d9f81f7aaaf893cf38ea3b7fbe68
Author: Rui Matos <tiagomatos gmail com>
Date:   Sat Jun 15 23:22:58 2013 +0200

    language: Make sure the initially selected language gets saved
    
    If users just clicked next without explicitly clicking a language row
    they'd end up with an empty setting. To prevent that we can write out
    the language selected by default on initialization.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=702166

 .../pages/language/gis-language-page.c             |   27 +++++++++++++------
 1 files changed, 18 insertions(+), 9 deletions(-)
---
diff --git a/gnome-initial-setup/pages/language/gis-language-page.c 
b/gnome-initial-setup/pages/language/gis-language-page.c
index 48233b4..095ae22 100644
--- a/gnome-initial-setup/pages/language/gis-language-page.c
+++ b/gnome-initial-setup/pages/language/gis-language-page.c
@@ -111,19 +111,13 @@ user_loaded (GObject    *object,
 }
 
 static void
-language_changed (CcLanguageChooser  *chooser,
-                  GParamSpec         *pspec,
-                  GisLanguagePage    *page)
+set_language (GisLanguagePage *page)
 {
   GisLanguagePagePrivate *priv = page->priv;
+  GisDriver *driver = GIS_PAGE (page)->driver;
   ActUser *user;
-  GisDriver *driver;
 
-  priv->new_locale_id = cc_language_chooser_get_language (chooser);
-  driver = GIS_PAGE (page)->driver;
-
-  setlocale (LC_MESSAGES, priv->new_locale_id);
-  gis_driver_locale_changed (driver);
+  priv->new_locale_id = cc_language_chooser_get_language (CC_LANGUAGE_CHOOSER (priv->language_chooser));
 
   if (gis_driver_get_mode (driver) == GIS_DRIVER_MODE_NEW_USER) {
       if (g_permission_get_allowed (priv->permission)) {
@@ -150,6 +144,19 @@ language_changed (CcLanguageChooser  *chooser,
 }
 
 static void
+language_changed (CcLanguageChooser  *chooser,
+                  GParamSpec         *pspec,
+                  GisLanguagePage    *page)
+{
+  GisLanguagePagePrivate *priv = page->priv;
+  GisDriver *driver = GIS_PAGE (page)->driver;
+
+  set_language (page);
+  setlocale (LC_MESSAGES, priv->new_locale_id);
+  gis_driver_locale_changed (driver);
+}
+
+static void
 localed_proxy_ready (GObject      *source,
                      GAsyncResult *res,
                      gpointer      data)
@@ -208,6 +215,8 @@ gis_language_page_constructed (GObject *object)
       g_object_unref (bus);
   }
 
+  set_language (page);
+
   gis_page_set_complete (GIS_PAGE (page), TRUE);
   gtk_widget_show (GTK_WIDGET (page));
 }


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