From 3b590beda2fb23400f74394badd7a5231d4d7920 Mon Sep 17 00:00:00 2001 From: "arg@mmvi" Date: Tue, 26 Sep 2006 13:37:36 +0200 Subject: added fallback to color initialization --- dmenu.h | 3 ++- draw.c | 5 +++-- main.c | 8 ++++---- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/dmenu.h b/dmenu.h index d4065d2..b58a32b 100644 --- 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 --- 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 --- 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; -- cgit v1.2.3