|
David Zeuthen |
e63f820 |
Index: gui/gdmuser.c
|
|
David Zeuthen |
e63f820 |
===================================================================
|
|
David Zeuthen |
e63f820 |
--- gui/gdmuser.c (revision 4608)
|
|
David Zeuthen |
e63f820 |
+++ gui/gdmuser.c (working copy)
|
|
David Zeuthen |
e63f820 |
@@ -137,6 +137,20 @@
|
|
David Zeuthen |
e63f820 |
gdk_pixbuf_loader_close (loader, NULL);
|
|
David Zeuthen |
e63f820 |
|
|
David Zeuthen |
e63f820 |
img = gdk_pixbuf_loader_get_pixbuf (loader);
|
|
David Zeuthen |
e63f820 |
+
|
|
David Zeuthen |
e63f820 |
+ /* if we have a defface, force all faces to be this size */
|
|
David Zeuthen |
e63f820 |
+ if (img != NULL && defface != NULL) {
|
|
David Zeuthen |
e63f820 |
+ GdkPixbuf *scaled;
|
|
David Zeuthen |
e63f820 |
+ scaled = gdk_pixbuf_scale_simple (img,
|
|
David Zeuthen |
e63f820 |
+ gdk_pixbuf_get_width (defface),
|
|
David Zeuthen |
e63f820 |
+ gdk_pixbuf_get_height (defface),
|
|
David Zeuthen |
e63f820 |
+ GDK_INTERP_BILINEAR);
|
|
David Zeuthen |
e63f820 |
+ if (scaled != NULL) {
|
|
David Zeuthen |
e63f820 |
+ g_object_unref (G_OBJECT (img));
|
|
David Zeuthen |
e63f820 |
+ img = scaled;
|
|
David Zeuthen |
e63f820 |
+ }
|
|
David Zeuthen |
e63f820 |
+ }
|
|
David Zeuthen |
e63f820 |
+
|
|
David Zeuthen |
e63f820 |
if (img != NULL)
|
|
David Zeuthen |
e63f820 |
g_object_ref (G_OBJECT (img));
|
|
David Zeuthen |
e63f820 |
|
|
David Zeuthen |
e63f820 |
Index: gui/greeter/greeter_parser.c
|
|
David Zeuthen |
e63f820 |
===================================================================
|
|
David Zeuthen |
e63f820 |
--- gui/greeter/greeter_parser.c (revision 4608)
|
|
David Zeuthen |
e63f820 |
+++ gui/greeter/greeter_parser.c (working copy)
|
|
David Zeuthen |
e63f820 |
@@ -1026,6 +1026,19 @@
|
|
David Zeuthen |
e63f820 |
xmlFree (prop);
|
|
David Zeuthen |
e63f820 |
}
|
|
David Zeuthen |
e63f820 |
|
|
David Zeuthen |
e63f820 |
+ prop = xmlGetProp (node,(const xmlChar *) "labelfgcolor");
|
|
David Zeuthen |
e63f820 |
+ if (prop)
|
|
David Zeuthen |
e63f820 |
+ {
|
|
David Zeuthen |
e63f820 |
+ if G_UNLIKELY (!parse_color ((char *) prop, &color, error)) {
|
|
David Zeuthen |
e63f820 |
+ info->data.list.label_fgcolor = NULL;
|
|
David Zeuthen |
e63f820 |
+ return FALSE;
|
|
David Zeuthen |
e63f820 |
+ } else {
|
|
David Zeuthen |
e63f820 |
+ info->data.list.label_fgcolor = g_strdup ((char *) prop);
|
|
David Zeuthen |
e63f820 |
+ }
|
|
David Zeuthen |
e63f820 |
+
|
|
David Zeuthen |
e63f820 |
+ xmlFree (prop);
|
|
David Zeuthen |
e63f820 |
+ }
|
|
David Zeuthen |
e63f820 |
+
|
|
David Zeuthen |
e63f820 |
return TRUE;
|
|
David Zeuthen |
e63f820 |
}
|
|
David Zeuthen |
e63f820 |
|
|
David Zeuthen |
e63f820 |
@@ -1843,11 +1856,25 @@
|
|
David Zeuthen |
e63f820 |
*/
|
|
David Zeuthen |
e63f820 |
theme_dir = g_strdup_printf ("%s/%s", gtk_rc_get_theme_dir (), (char *) prop);
|
|
David Zeuthen |
e63f820 |
if (g_file_test (theme_dir, G_FILE_TEST_IS_DIR))
|
|
David Zeuthen |
e63f820 |
- gdm_set_theme ((char *) prop);
|
|
David Zeuthen |
e63f820 |
+ gdm_set_theme ((char *) prop);
|
|
David Zeuthen |
e63f820 |
|
|
David Zeuthen |
e63f820 |
xmlFree (prop);
|
|
David Zeuthen |
e63f820 |
}
|
|
David Zeuthen |
e63f820 |
|
|
David Zeuthen |
e63f820 |
+ /*
|
|
David Zeuthen |
e63f820 |
+ * The gtkrc property specifies a theme specific gtkrc to use
|
|
David Zeuthen |
e63f820 |
+ */
|
|
David Zeuthen |
e63f820 |
+ prop = xmlGetProp (node, (const xmlChar *) "gtkrc");
|
|
David Zeuthen |
e63f820 |
+ if (prop != NULL) {
|
|
David Zeuthen |
e63f820 |
+ char *s;
|
|
David Zeuthen |
e63f820 |
+ s = g_strdup_printf ("%s/%s", file_search_path, (char *) prop);
|
|
David Zeuthen |
e63f820 |
+ if (g_file_test (s, G_FILE_TEST_IS_REGULAR)) {
|
|
David Zeuthen |
e63f820 |
+ gtk_rc_parse (s);
|
|
David Zeuthen |
e63f820 |
+ }
|
|
David Zeuthen |
e63f820 |
+ g_free (s);
|
|
David Zeuthen |
e63f820 |
+ xmlFree (prop);
|
|
David Zeuthen |
e63f820 |
+ }
|
|
David Zeuthen |
e63f820 |
+
|
|
David Zeuthen |
e63f820 |
item_hash = g_hash_table_new ((GHashFunc)greeter_info_id_hash,
|
|
David Zeuthen |
e63f820 |
(GEqualFunc)greeter_info_id_equal);
|
|
David Zeuthen |
e63f820 |
|
|
David Zeuthen |
e63f820 |
Index: gui/greeter/greeter_item.h
|
|
David Zeuthen |
e63f820 |
===================================================================
|
|
David Zeuthen |
e63f820 |
--- gui/greeter/greeter_item.h (revision 4608)
|
|
David Zeuthen |
e63f820 |
+++ gui/greeter/greeter_item.h (working copy)
|
|
David Zeuthen |
e63f820 |
@@ -177,6 +177,7 @@
|
|
David Zeuthen |
e63f820 |
struct {
|
|
David Zeuthen |
e63f820 |
char *icon_color;
|
|
David Zeuthen |
e63f820 |
char *label_color;
|
|
David Zeuthen |
e63f820 |
+ char *label_fgcolor;
|
|
David Zeuthen |
e63f820 |
/* If this is a custom list, then these are the items
|
|
David Zeuthen |
e63f820 |
to pick from */
|
|
David Zeuthen |
e63f820 |
GList *items;
|
|
David Zeuthen |
e63f820 |
Index: gui/greeter/greeter_item_ulist.c
|
|
David Zeuthen |
e63f820 |
===================================================================
|
|
David Zeuthen |
e63f820 |
--- gui/greeter/greeter_item_ulist.c (revision 4608)
|
|
David Zeuthen |
e63f820 |
+++ gui/greeter/greeter_item_ulist.c (working copy)
|
|
David Zeuthen |
e63f820 |
@@ -322,6 +322,10 @@
|
|
David Zeuthen |
e63f820 |
if (info->data.list.label_color != NULL)
|
|
David Zeuthen |
e63f820 |
g_object_set (cell, "background",
|
|
David Zeuthen |
e63f820 |
info->data.list.label_color, NULL);
|
|
David Zeuthen |
e63f820 |
+
|
|
David Zeuthen |
e63f820 |
+ if (info->data.list.label_fgcolor != NULL)
|
|
David Zeuthen |
e63f820 |
+ g_object_set (cell, "foreground",
|
|
David Zeuthen |
e63f820 |
+ info->data.list.label_fgcolor, NULL);
|
|
David Zeuthen |
e63f820 |
}
|
|
David Zeuthen |
e63f820 |
}
|
|
David Zeuthen |
e63f820 |
|