summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2008-02-25 21:18:16 +0000
committerRay Strode <halfline@src.gnome.org>2008-02-25 21:18:16 +0000
commitd2c1566cef7db90d21a7afbda8e66bbf8454409d (patch)
tree346296206e204fcaf1778773cd21a367c99b68a3
parenta2cc427bb26b7ea285520c54359684eb066732de (diff)
downloadgdm-d2c1566cef7db90d21a7afbda8e66bbf8454409d.tar.gz
Normalize language name before adding to the list, so we don't end up with
2008-02-25 Ray Strode <rstrode@redhat.com> * gui/simple-greeter/gdm-language-option-widget.c (gdm_language_option_widget_set_current_language_name): Normalize language name before adding to the list, so we don't end up with duplicate entries for the same locale svn path=/trunk/; revision=5855
-rw-r--r--ChangeLog8
-rw-r--r--gui/simple-greeter/gdm-language-option-widget.c24
2 files changed, 24 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 84d101e8..729c770c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,13 @@
2008-02-25 Ray Strode <rstrode@redhat.com>
+ * gui/simple-greeter/gdm-language-option-widget.c
+ (gdm_language_option_widget_set_current_language_name):
+ Normalize language name before adding to the list, so
+ we don't end up with duplicate entries for the same
+ locale
+
+2008-02-25 Ray Strode <rstrode@redhat.com>
+
* gui/simple-greeter/gdm-language-chooser-widget.c
(gdm_language_chooser_widget_get_current_language_name):
fallback to setlocale (LC_MESSAGES, NULL) instead of
diff --git a/gui/simple-greeter/gdm-language-option-widget.c b/gui/simple-greeter/gdm-language-option-widget.c
index b78f4e41..2d513c47 100644
--- a/gui/simple-greeter/gdm-language-option-widget.c
+++ b/gui/simple-greeter/gdm-language-option-widget.c
@@ -237,17 +237,25 @@ gdm_language_option_widget_get_current_language_name (GdmLanguageOptionWidget *w
void
gdm_language_option_widget_set_current_language_name (GdmLanguageOptionWidget *widget,
- const char *lang_name)
+ const char *language_name)
{
+ char *normalized_language_name;
+
g_return_if_fail (GDM_IS_LANGUAGE_OPTION_WIDGET (widget));
- if (lang_name == NULL) {
- gdm_option_widget_set_active_item (GDM_OPTION_WIDGET (widget), GDM_LANGUAGE_OPTION_WIDGET_LAST_LANGUAGE);
- } else if (!gdm_option_widget_lookup_item (GDM_OPTION_WIDGET (widget), lang_name,
- NULL, NULL, NULL)) {
- gdm_recent_option_widget_add_item (GDM_RECENT_OPTION_WIDGET (widget),
- lang_name);
+ if (language_name != NULL) {
+ normalized_language_name = gdm_normalize_language_name (language_name);
} else {
- gdm_option_widget_set_active_item (GDM_OPTION_WIDGET (widget), lang_name);
+ normalized_language_name = NULL;
+ }
+
+ if (normalized_language_name != NULL &&
+ !gdm_option_widget_lookup_item (GDM_OPTION_WIDGET (widget),
+ normalized_language_name, NULL, NULL, NULL)) {
+ gdm_recent_option_widget_add_item (GDM_RECENT_OPTION_WIDGET (widget),
+ normalized_language_name);
}
+
+ gdm_option_widget_set_active_item (GDM_OPTION_WIDGET (widget), normalized_language_name);
+ g_free (normalized_language_name);
}