diff options
-rw-r--r-- | ChangeLog | 10 | ||||
-rw-r--r-- | gui/greeter/greeter_parser.c | 23 |
2 files changed, 32 insertions, 1 deletions
@@ -1,3 +1,13 @@ +2006-02-21 Brian Cameron <brian.cameron@sun.com> + + * gui/greeter/greeter_parser.c: Add new "gtk-theme" property + to <greeter> tag theme xml format, so the theme can specify a + GtkTheme to be used for gdmgreeter. This allows theming of + the "Options" menu and the entry field, and any other GTK+ + widgets used by gdmgreeter. This also makes it possible to + create a11y themes (HighContrast, LowContrast, etc.) themes + for gdmgreeter. + 2006-02-16 Brian Cameron <brian.cameron@sun.com> * gui/greeter/greeter.c, gui/greeter/greeter_item_ulist.c: Fix diff --git a/gui/greeter/greeter_parser.c b/gui/greeter/greeter_parser.c index 708bbf97..b8d05be2 100644 --- a/gui/greeter/greeter_parser.c +++ b/gui/greeter/greeter_parser.c @@ -1636,9 +1636,10 @@ greeter_parse (const char *file, const char *datadir, GreeterItemInfo *root; xmlDocPtr doc; xmlNodePtr node; + xmlChar *prop; gboolean res; GList *items; - + /* FIXME: EVIL! GLOBAL! */ g_free (file_search_path); file_search_path = g_strdup (datadir); @@ -1684,6 +1685,26 @@ greeter_parse (const char *file, const char *datadir, return NULL; } + /* + * The gtk-theme property specifies a theme specific gtk-theme to use + */ + prop = xmlGetProp (node, (const xmlChar *) "gtk-theme"); + if (prop) + { + gchar *theme_dir; + + /* + * It might be nice if we allowed this property to also supply a gtkrc file + * that could be included in the theme. Perhaps we should check first in + * the theme directory for a gtkrc file by the provided name and use that + * if found. + */ + 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); + + xmlFree (prop); + } item_hash = g_hash_table_new ((GHashFunc)greeter_info_id_hash, (GEqualFunc)greeter_info_id_equal); |