X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=render%2Ftheme.c;h=f5af79e98595e408ec9ef28fa89a06b7cd0a04e3;hb=9cc523aa71d5c25a7ac0380c2349e3634d240f6d;hp=1d47382393c667afb0075fdadbe73ab7f47d78d0;hpb=ed1dcb6b48012ca5c4a1358915e309ec05f9afe3;p=chaz%2Fopenbox diff --git a/render/theme.c b/render/theme.c index 1d473823..f5af79e9 100644 --- a/render/theme.c +++ b/render/theme.c @@ -64,7 +64,8 @@ static gboolean find_appearance(ParseState *ps, xmlNodePtr n, const gchar *names /* shortcut to the various find_* functions */ #define FIND(type, args...) find_##type(&ps, root, args) -RrTheme* RrThemeNew(const RrInstance *inst, gchar *name, +RrTheme* RrThemeNew(const RrInstance *inst, const gchar *name, + gboolean allow_fallback, RrFont *active_window_font, RrFont *inactive_window_font, RrFont *menu_title_font, RrFont *menu_item_font, RrFont *osd_font) @@ -79,18 +80,23 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name, if (name) { if (!parse_load_theme(name, &ps.doc, &root, &ps.path)) { g_message("Unable to load the theme '%s'", name); - g_message("Falling back to the default theme '%s'", - DEFAULT_THEME); + if (allow_fallback) + g_message("Falling back to the default theme '%s'", + DEFAULT_THEME); /* make it fall back to default theme */ name = NULL; } } - if (!name) { - if (!parse_load_theme(DEFAULT_THEME, &ps.doc, &root, &ps.path)) { - g_message("Unable to load the theme '%s'", DEFAULT_THEME); + if (name == NULL) { + if (allow_fallback) { + if (!parse_load_theme(DEFAULT_THEME, &ps.doc, &root, &ps.path)) { + g_message("Unable to load the theme '%s'", DEFAULT_THEME); + return NULL; + } + } else return NULL; - } } + ps.inst = inst; theme = g_new0(RrTheme, 1);