added fallback to color initialization
authorarg@mmvi <unknown>
Tue, 26 Sep 2006 11:37:36 +0000 (13:37 +0200)
committerarg@mmvi <unknown>
Tue, 26 Sep 2006 11:37:36 +0000 (13:37 +0200)
dmenu.h
draw.c
main.c

diff --git a/dmenu.h b/dmenu.h
index d4065d2..b58a32b 100644 (file)
--- a/dmenu.h
+++ b/dmenu.h
@@ -43,7 +43,8 @@ extern DC dc;                 /* global drawing context */
 /* draw.c */
 extern void drawtext(const char *text,
                        unsigned long col[ColLast]);    /* draws text with the defined color tuple */
-extern unsigned long getcolor(const char *colstr);     /* returns color of colstr */
+extern unsigned long getcolor(
+       const char *colstr, const char *alternate);     /* returns color of colstr */
 extern void setfont(const char *fontstr);              /* sets global font */
 extern unsigned int textw(const char *text);           /* returns width of text in px */
 
diff --git a/draw.c b/draw.c
index 10a011d..dafc107 100644 (file)
--- a/draw.c
+++ b/draw.c
@@ -76,11 +76,12 @@ drawtext(const char *text, unsigned long col[ColLast]) {
 }
 
 unsigned long
-getcolor(const char *colstr) {
+getcolor(const char *colstr, const char *alternate) {
        Colormap cmap = DefaultColormap(dpy, screen);
        XColor color;
 
-       XAllocNamedColor(dpy, cmap, colstr, &color, &color);
+       if(XAllocNamedColor(dpy, cmap, colstr, &color, &color) != Success)
+               XAllocNamedColor(dpy, cmap, alternate, &color, &color);
        return color.pixel;
 }
 
diff --git a/main.c b/main.c
index 27b28af..5a9b3b9 100644 (file)
--- a/main.c
+++ b/main.c
@@ -341,10 +341,10 @@ main(int argc, char *argv[]) {
        maxname = readstdin();
 
        /* style */
-       dc.sel[ColBG] = getcolor(selbg);
-       dc.sel[ColFG] = getcolor(selfg);
-       dc.norm[ColBG] = getcolor(normbg);
-       dc.norm[ColFG] = getcolor(normfg);
+       dc.norm[ColBG] = getcolor(normbg, NORMBGCOLOR);
+       dc.norm[ColFG] = getcolor(normfg, NORMFGCOLOR);
+       dc.sel[ColBG] = getcolor(selbg, SELBGCOLOR);
+       dc.sel[ColFG] = getcolor(selfg, SELFGCOLOR);
        setfont(font);
 
        wa.override_redirect = 1;