diff --git a/gdm-2.17.7-greeter.patch b/gdm-2.17.7-greeter.patch new file mode 100644 index 0000000..f018758 --- /dev/null +++ b/gdm-2.17.7-greeter.patch @@ -0,0 +1,103 @@ +Index: gui/gdmuser.c +=================================================================== +--- gui/gdmuser.c (revision 4608) ++++ gui/gdmuser.c (working copy) +@@ -137,6 +137,20 @@ + gdk_pixbuf_loader_close (loader, NULL); + + img = gdk_pixbuf_loader_get_pixbuf (loader); ++ ++ /* if we have a defface, force all faces to be this size */ ++ if (img != NULL && defface != NULL) { ++ GdkPixbuf *scaled; ++ scaled = gdk_pixbuf_scale_simple (img, ++ gdk_pixbuf_get_width (defface), ++ gdk_pixbuf_get_height (defface), ++ GDK_INTERP_BILINEAR); ++ if (scaled != NULL) { ++ g_object_unref (G_OBJECT (img)); ++ img = scaled; ++ } ++ } ++ + if (img != NULL) + g_object_ref (G_OBJECT (img)); + +Index: gui/greeter/greeter_parser.c +=================================================================== +--- gui/greeter/greeter_parser.c (revision 4608) ++++ gui/greeter/greeter_parser.c (working copy) +@@ -1026,6 +1026,19 @@ + xmlFree (prop); + } + ++ prop = xmlGetProp (node,(const xmlChar *) "labelfgcolor"); ++ if (prop) ++ { ++ if G_UNLIKELY (!parse_color ((char *) prop, &color, error)) { ++ info->data.list.label_fgcolor = NULL; ++ return FALSE; ++ } else { ++ info->data.list.label_fgcolor = g_strdup ((char *) prop); ++ } ++ ++ xmlFree (prop); ++ } ++ + return TRUE; + } + +@@ -1843,11 +1856,25 @@ + */ + theme_dir = g_strdup_printf ("%s/%s", gtk_rc_get_theme_dir (), (char *) prop); + if (g_file_test (theme_dir, G_FILE_TEST_IS_DIR)) +- gdm_set_theme ((char *) prop); ++ gdm_set_theme ((char *) prop); + + xmlFree (prop); + } + ++ /* ++ * The gtkrc property specifies a theme specific gtkrc to use ++ */ ++ prop = xmlGetProp (node, (const xmlChar *) "gtkrc"); ++ if (prop != NULL) { ++ char *s; ++ s = g_strdup_printf ("%s/%s", file_search_path, (char *) prop); ++ if (g_file_test (s, G_FILE_TEST_IS_REGULAR)) { ++ gtk_rc_parse (s); ++ } ++ g_free (s); ++ xmlFree (prop); ++ } ++ + item_hash = g_hash_table_new ((GHashFunc)greeter_info_id_hash, + (GEqualFunc)greeter_info_id_equal); + +Index: gui/greeter/greeter_item.h +=================================================================== +--- gui/greeter/greeter_item.h (revision 4608) ++++ gui/greeter/greeter_item.h (working copy) +@@ -177,6 +177,7 @@ + struct { + char *icon_color; + char *label_color; ++ char *label_fgcolor; + /* If this is a custom list, then these are the items + to pick from */ + GList *items; +Index: gui/greeter/greeter_item_ulist.c +=================================================================== +--- gui/greeter/greeter_item_ulist.c (revision 4608) ++++ gui/greeter/greeter_item_ulist.c (working copy) +@@ -322,6 +322,10 @@ + if (info->data.list.label_color != NULL) + g_object_set (cell, "background", + info->data.list.label_color, NULL); ++ ++ if (info->data.list.label_fgcolor != NULL) ++ g_object_set (cell, "foreground", ++ info->data.list.label_fgcolor, NULL); + } + } + diff --git a/gdm.spec b/gdm.spec index a435584..edbc0d8 100644 --- a/gdm.spec +++ b/gdm.spec @@ -16,7 +16,7 @@ Summary: The GNOME Display Manager Name: gdm Version: 2.17.7 -Release: 3%{?dist} +Release: 4%{?dist} Epoch: 1 License: LGPL/GPL Group: User Interface/X @@ -51,6 +51,9 @@ Patch25: gdm-2.16.0-indic-langs.patch Patch28: gdm-2.17.1-desensitize-entry.patch +# http://bugzilla.gnome.org/show_bug.cgi?id=411427 +Patch29: gdm-2.17.7-greeter.patch + BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Prereq: /usr/sbin/useradd @@ -122,6 +125,7 @@ several different X sessions on your local machine at the same time. %patch24 -p1 -b .wtmp %patch25 -p1 -b .indic-langs %patch28 -p1 -b .desensitize-entry +%patch29 -p0 -b .greeter %build cp -f %{SOURCE1} config/gdm @@ -323,6 +327,9 @@ fi %attr(1770, root, gdm) %dir %{_localstatedir}/gdm %changelog +* Fri Feb 23 2007 David Zeuthen - 1:2.17.7-4 +- Add some enhancements to the greeter (bgo #411427) + * Fri Feb 23 2007 Ray Strode - 1:2.17.7-3 - Update to 2.17.7