]> Dogcows Code - chaz/openbox/blobdiff - render/theme.c
look in theme dirs first, use the theme as the path as a last attempt only!
[chaz/openbox] / render / theme.c
index 37bc4717da9aa1244dc907029c8f0f84950606f2..ca3283a27807efdbfe6cdd07e9c237950fd66d43 100644 (file)
@@ -59,6 +59,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name)
     theme->a_menu_item = RrAppearanceNew(inst, 1);
     theme->a_menu_disabled = RrAppearanceNew(inst, 1);
     theme->a_menu_hilite = RrAppearanceNew(inst, 1);
+    theme->a_clear = RrAppearanceNew(inst, 0);
 
     theme->app_hilite_bg = RrAppearanceNew(inst, 0);
     theme->app_unhilite_bg = RrAppearanceNew(inst, 0);
@@ -585,6 +586,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name)
         RrAppearanceCopy(theme->a_focused_pressed_max);
 
     theme->a_icon->surface.grad = RR_SURFACE_PARENTREL;
+    theme->a_clear->surface.grad = RR_SURFACE_PARENTREL;
 
     /* set up the textures */
     theme->a_focused_label->texture[0].type = 
@@ -718,7 +720,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name)
         theme->desk_mask;
     theme->a_toggled_focused_desk->texture[0].data.mask.mask = 
         theme->a_toggled_unfocused_desk->texture[0].data.mask.mask =
-        theme->desk_mask;
+        theme->desk_toggled_mask;
     theme->a_disabled_focused_shade->texture[0].data.mask.mask = 
         theme->a_disabled_unfocused_shade->texture[0].data.mask.mask = 
         theme->shade_disabled_mask;
@@ -733,7 +735,7 @@ RrTheme* RrThemeNew(const RrInstance *inst, gchar *name)
         theme->shade_mask;
     theme->a_toggled_focused_shade->texture[0].data.mask.mask = 
         theme->a_toggled_unfocused_shade->texture[0].data.mask.mask =
-        theme->shade_mask;
+        theme->shade_toggled_mask;
     theme->a_disabled_focused_iconify->texture[0].data.mask.mask = 
         theme->a_disabled_unfocused_iconify->texture[0].data.mask.mask = 
         theme->iconify_disabled_mask;
@@ -926,6 +928,7 @@ void RrThemeFree(RrTheme *theme)
         RrAppearanceFree(theme->a_menu_item);
         RrAppearanceFree(theme->a_menu_disabled);
         RrAppearanceFree(theme->a_menu_hilite);
+        RrAppearanceFree(theme->a_clear);
         RrAppearanceFree(theme->app_hilite_bg);
         RrAppearanceFree(theme->app_unhilite_bg);
         RrAppearanceFree(theme->app_hilite_label);
@@ -938,19 +941,19 @@ static XrmDatabase loaddb(RrTheme *theme, char *name)
 {
     XrmDatabase db;
 
-    char *s = g_build_filename(name, "themerc", NULL);
+    char *s = g_build_filename(g_get_home_dir(), ".openbox", "themes",
+                               name, "themerc", NULL);
     if ((db = XrmGetFileDatabase(s)))
         theme->path = g_path_get_dirname(s);
     g_free(s);
     if (db == NULL) {
-       char *s = g_build_filename(g_get_home_dir(), ".openbox", "themes",
-                                  name, "themerc", NULL);
+       char *s = g_build_filename(THEMEDIR, name, "themerc", NULL);
        if ((db = XrmGetFileDatabase(s)))
             theme->path = g_path_get_dirname(s);
        g_free(s);
     }
     if (db == NULL) {
-       char *s = g_build_filename(THEMEDIR, name, "themerc", NULL);
+    char *s = g_build_filename(name, "themerc", NULL);
        if ((db = XrmGetFileDatabase(s)))
             theme->path = g_path_get_dirname(s);
         g_free(s);
@@ -1040,28 +1043,12 @@ static gboolean read_mask(const RrInstance *inst,
     unsigned int w, h;
     unsigned char *b;
 
-    s = g_build_filename(g_get_home_dir(), ".openbox", "themes",
-                         theme->name, maskname, NULL);
-    if (XReadBitmapFileData(s, &w, &h, &b, &hx, &hy) == BitmapSuccess)
+    s = g_build_filename(theme->path, maskname, NULL);
+    if (XReadBitmapFileData(s, &w, &h, &b, &hx, &hy) == BitmapSuccess) {
         ret = TRUE;
-    else {
-        g_free(s);
-        s = g_build_filename(THEMEDIR, theme->name, maskname, NULL);
-        if (XReadBitmapFileData(s, &w, &h, &b, &hx, &hy) == BitmapSuccess) 
-            ret = TRUE;
-        else {
-            g_free(s);
-            s = g_build_filename(theme->path, maskname, NULL);
-            if (XReadBitmapFileData(s, &w, &h, &b, &hx, &hy) == BitmapSuccess) 
-                ret = TRUE;
-        }
-    }
-
-    if (ret) {
         *value = RrPixmapMaskNew(inst, w, h, (char*)b);
         XFree(b);
     }
-      
     g_free(s);
 
     return ret;
This page took 0.027054 seconds and 4 git commands to generate.