diff options
author | Ray Strode <rstrode@redhat.com> | 2008-02-25 21:18:16 +0000 |
---|---|---|
committer | Ray Strode <halfline@src.gnome.org> | 2008-02-25 21:18:16 +0000 |
commit | d2c1566cef7db90d21a7afbda8e66bbf8454409d (patch) | |
tree | 346296206e204fcaf1778773cd21a367c99b68a3 | |
parent | a2cc427bb26b7ea285520c54359684eb066732de (diff) | |
download | gdm-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-- | ChangeLog | 8 | ||||
-rw-r--r-- | gui/simple-greeter/gdm-language-option-widget.c | 24 |
2 files changed, 24 insertions, 8 deletions
@@ -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); } |