diff --git a/data/org.fedorahosted.eekboard.gschema.xml.in b/data/org.fedorahosted.eekboard.gschema.xml.in index 6b87e157..d30fb787 100644 --- a/data/org.fedorahosted.eekboard.gschema.xml.in +++ b/data/org.fedorahosted.eekboard.gschema.xml.in @@ -46,5 +46,10 @@ Switch to fullscreen mode when startup If true, switch to fullscreen mode when startup. + + 'default' + Theme + Base name of the theme to apply. + diff --git a/src/server-context-service.c b/src/server-context-service.c index bb7111e0..b0958bec 100644 --- a/src/server-context-service.c +++ b/src/server-context-service.c @@ -33,8 +33,6 @@ #include "server-context-service.h" -#define DEFAULT_THEME (THEMEDIR "/default.css") - enum { PROP_0, PROP_UI_TOOLKIT, @@ -292,7 +290,9 @@ update_widget (ServerContextService *context) const EekKeyboard *keyboard; const gchar *client_name; EekBounds bounds; + gchar *theme_name, *theme_path; EekTheme *theme; + #if HAVE_CLUTTER_GTK ClutterActor *stage, *actor; ClutterColor stage_color = { 0xff, 0xff, 0xff, 0xff }; @@ -301,7 +301,13 @@ update_widget (ServerContextService *context) if (context->widget) gtk_widget_destroy (context->widget); - theme = eek_theme_new (DEFAULT_THEME, NULL, NULL); + theme_name = g_settings_get_string (context->settings, "theme"); + theme_path = g_strdup_printf ("%s/%s.css", THEMEDIR, theme_name); + g_free (theme_name); + + theme = eek_theme_new (theme_path, NULL, NULL); + g_free (theme_path); + keyboard = eekboard_context_service_get_keyboard (EEKBOARD_CONTEXT_SERVICE(context)); eek_element_get_bounds (EEK_ELEMENT(keyboard), &bounds); if (context->ui_toolkit == UI_TOOLKIT_CLUTTER) {