diff --git a/gdm-language-tooltip.patch b/gdm-language-tooltip.patch new file mode 100644 index 0000000..62d539d --- /dev/null +++ b/gdm-language-tooltip.patch @@ -0,0 +1,142 @@ +diff -up gdm-2.21.9/gui/simple-greeter/gdm-languages.c.lang-tip gdm-2.21.9/gui/simple-greeter/gdm-languages.c +--- gdm-2.21.9/gui/simple-greeter/gdm-languages.c.lang-tip 2008-02-25 17:21:43.000000000 -0500 ++++ gdm-2.21.9/gui/simple-greeter/gdm-languages.c 2008-03-17 17:57:09.000000000 -0400 +@@ -630,15 +630,18 @@ get_translated_language (const char *cod + const char *translated_name; + char *old_locale; + +- old_locale = g_strdup (setlocale (LC_MESSAGES, NULL)); +- setlocale (LC_MESSAGES, locale); +- translated_name = dgettext ("iso_639", language); ++ if (locale != NULL) { ++ old_locale = g_strdup (setlocale (LC_MESSAGES, NULL)); ++ setlocale (LC_MESSAGES, locale); ++ } + ++ translated_name = dgettext ("iso_639", language); + name = get_first_item_in_semicolon_list (translated_name); + +- setlocale (LC_MESSAGES, old_locale); +- g_free (old_locale); +- ++ if (locale != NULL) { ++ setlocale (LC_MESSAGES, old_locale); ++ g_free (old_locale); ++ } + } + + return name; +@@ -676,13 +679,18 @@ get_translated_territory (const char *co + const char *translated_territory; + char *old_locale; + +- old_locale = g_strdup (setlocale (LC_MESSAGES, NULL)); +- setlocale (LC_MESSAGES, locale); +- translated_territory = dgettext ("iso_3166", territory); +- setlocale (LC_MESSAGES, old_locale); +- g_free (old_locale); ++ if (locale != NULL) { ++ old_locale = g_strdup (setlocale (LC_MESSAGES, NULL)); ++ setlocale (LC_MESSAGES, locale); ++ } + ++ translated_territory = dgettext ("iso_3166", territory); + name = get_first_item_in_semicolon_list (translated_territory); ++ ++ if (locale != NULL) { ++ setlocale (LC_MESSAGES, old_locale); ++ g_free (old_locale); ++ } + } + + return name; +@@ -929,7 +937,8 @@ territories_init (void) + } + + char * +-gdm_get_language_from_name (const char *name) ++gdm_get_language_from_name (const char *name, ++ const char *locale) + { + char *full_language; + char *language_code; +@@ -956,10 +965,10 @@ gdm_get_language_from_name (const char * + goto out; + } + +- language = get_translated_language (language_code, name); ++ language = get_translated_language (language_code, locale); + + if (territory_code != NULL) { +- territory = get_translated_territory (territory_code, name); ++ territory = get_translated_territory (territory_code, locale); + } else { + territory = NULL; + } +diff -up gdm-2.21.9/gui/simple-greeter/gdm-language-option-widget.c.lang-tip gdm-2.21.9/gui/simple-greeter/gdm-language-option-widget.c +--- gdm-2.21.9/gui/simple-greeter/gdm-language-option-widget.c.lang-tip 2008-02-25 17:21:43.000000000 -0500 ++++ gdm-2.21.9/gui/simple-greeter/gdm-language-option-widget.c 2008-03-17 17:56:41.000000000 -0400 +@@ -144,15 +144,18 @@ gdm_language_option_widget_lookup_item ( + char **comment) + { + char *language; ++ char *readable_language; + +- language = gdm_get_language_from_name (locale); ++ language = gdm_get_language_from_name (locale, locale); + + if (language == NULL) { + return FALSE; + } + ++ readable_language = gdm_get_language_from_name (locale, NULL); ++ + *name = language; +- *comment = g_strdup (""); ++ *comment = readable_language; + + return TRUE; + } +diff -up gdm-2.21.9/gui/simple-greeter/gdm-languages.h.lang-tip gdm-2.21.9/gui/simple-greeter/gdm-languages.h +--- gdm-2.21.9/gui/simple-greeter/gdm-languages.h.lang-tip 2008-02-20 10:56:46.000000000 -0500 ++++ gdm-2.21.9/gui/simple-greeter/gdm-languages.h 2008-03-17 15:38:16.000000000 -0400 +@@ -26,7 +26,8 @@ + + G_BEGIN_DECLS + +-char * gdm_get_language_from_name (const char *name); ++char * gdm_get_language_from_name (const char *name, ++ const char *locale); + char ** gdm_get_all_language_names (void); + void gdm_parse_language_name (const char *name, + char **language_codep, +diff -up gdm-2.21.9/gui/simple-greeter/gdm-language-chooser-widget.c.lang-tip gdm-2.21.9/gui/simple-greeter/gdm-language-chooser-widget.c +--- gdm-2.21.9/gui/simple-greeter/gdm-language-chooser-widget.c.lang-tip 2008-02-25 17:21:43.000000000 -0500 ++++ gdm-2.21.9/gui/simple-greeter/gdm-language-chooser-widget.c 2008-03-17 17:56:08.000000000 -0400 +@@ -117,21 +117,24 @@ gdm_language_chooser_widget_add_language + { + char *language; + char *normalized_name; ++ char *readable_language; + + normalized_name = gdm_normalize_language_name (name); +- language = gdm_get_language_from_name (normalized_name); ++ language = gdm_get_language_from_name (normalized_name, normalized_name); ++ readable_language = gdm_get_language_from_name (normalized_name, NULL); + + if (language != NULL) { + gdm_chooser_widget_add_item (GDM_CHOOSER_WIDGET (widget), + normalized_name, + NULL, + language, +- "", ++ readable_language, + 0, + FALSE, + FALSE); + g_free (language); + } ++ g_free (readable_language); + + g_free (normalized_name); + } diff --git a/gdm.spec b/gdm.spec index fdd9033..2fe6a9d 100644 --- a/gdm.spec +++ b/gdm.spec @@ -16,7 +16,7 @@ Summary: The GNOME Display Manager Name: gdm Version: 2.21.9 -Release: 4%{?dist} +Release: 5%{?dist} Epoch: 1 License: GPLv2+ Group: User Interface/X @@ -81,6 +81,7 @@ Patch1: gdm-null-user.patch Patch2: gdm-2.21.9-remove-duplicate-signal-verification.patch # http://bugzilla.gnome.org/show_bug.cgi?id=522033 Patch3: gdm-no-fuse.patch +Patch4: gdm-language-tooltip.patch Patch99: gdm-2.21.8-fedora-logo.patch %package user-switch-applet @@ -103,7 +104,8 @@ multiple simulanteous logged in users. %patch1 -p0 -b .null-user %patch2 -p1 -b .remove-duplicate-signal-verification -%patch3 -p1 -b .gdm-no-fuse +%patch3 -p1 -b .no-fuse +%patch4 -p1 -b .language-tooltip %patch99 -p1 -b .fedora-logo %build @@ -297,6 +299,9 @@ fi %{_datadir}/gnome-2.0/ui/GNOME_FastUserSwitchApplet.xml %changelog +* Mon Mar 17 2008 Matthias Clasen - 1:2.21.9-5 +- Implement tooltips in the language selection dialog + * Mon Mar 17 2008 Matthias Clasen - 1:2.21.9-4 - Stop gvfs from using fuse in the sandbox session