summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBert Münnich <ber.t@posteo.de>2019-01-23 20:13:25 +0100
committerBert Münnich <ber.t@posteo.de>2019-01-23 20:13:25 +0100
commit9d244da5124bf13046a4f9606b616ab1d8244e0e (patch)
tree6c28825bc202310e09588a818b6e57aa53b99056
parentf7fc6637f35e43adffb2e1a20ec511dfb9ca7bd1 (diff)
downloadnsxiv-9d244da5124bf13046a4f9606b616ab1d8244e0e.tar.zst
Simplify X resource retrieval
Also makes the color names in config.def.h constant again.
-rw-r--r--config.def.h10
-rw-r--r--window.c35
2 files changed, 22 insertions, 23 deletions
diff --git a/config.def.h b/config.def.h
index c7a2389..58e728e 100644
--- a/config.def.h
+++ b/config.def.h
@@ -14,11 +14,11 @@ static const char * const BAR_FONT = "monospace:size=8";
/* colors:
* (see X(7) section "COLOR NAMES" for valid values)
*/
-static char const * WIN_BG_COLOR = "#555555";
-static char const * WIN_FS_COLOR = "#000000";
-static char const * SEL_COLOR = "#EEEEEE";
-static char const * BAR_BG_COLOR = "#222222";
-static char const * BAR_FG_COLOR = "#EEEEEE";
+static const char * const WIN_BG_COLOR = "#555555";
+static const char * const WIN_FS_COLOR = "#000000";
+static const char * const SEL_COLOR = "#EEEEEE";
+static const char * const BAR_BG_COLOR = "#222222";
+static const char * const BAR_FG_COLOR = "#EEEEEE";
#endif
#ifdef _IMAGE_CONFIG
diff --git a/window.c b/window.c
index 7d85c63..0503681 100644
--- a/window.c
+++ b/window.c
@@ -102,7 +102,7 @@ void win_check_wm_support(Display *dpy, Window root)
}
}
-void win_res(Display *dpy, const char *name, const char **dst)
+const char* win_res(Display *dpy, const char *name, const char *def)
{
char *type;
XrmValue ret;
@@ -111,14 +111,14 @@ void win_res(Display *dpy, const char *name, const char **dst)
XrmInitialize();
- if ((res_man = XResourceManagerString(dpy)) == NULL)
- return;
-
- if ((db = XrmGetStringDatabase(res_man)) == NULL)
- return;
-
- if (XrmGetResource(db, name, name, &type, &ret) && STREQ(type, "String"))
- *dst = ret.addr;
+ if ((res_man = XResourceManagerString(dpy)) != NULL &&
+ (db = XrmGetStringDatabase(res_man)) != NULL &&
+ XrmGetResource(db, name, name, &type, &ret) && STREQ(type, "String"))
+ {
+ return ret.addr;
+ } else {
+ return def;
+ }
}
#define INIT_ATOM_(atom) \
@@ -144,18 +144,17 @@ void win_init(win_t *win)
if (setlocale(LC_CTYPE, "") == NULL || XSupportsLocale() == 0)
error(0, 0, "No locale support");
- win_res(e->dpy, RES_CLASS ".background", &WIN_BG_COLOR);
- win_res(e->dpy, RES_CLASS ".background", &BAR_FG_COLOR);
- win_res(e->dpy, RES_CLASS ".foreground", &BAR_BG_COLOR);
- win_res(e->dpy, RES_CLASS ".foreground", &SEL_COLOR);
-
win_init_font(e, BAR_FONT);
- win_alloc_color(e, WIN_BG_COLOR, &win->bgcol);
+ win_alloc_color(e, win_res(e->dpy, RES_CLASS ".background", WIN_BG_COLOR),
+ &win->bgcol);
win_alloc_color(e, WIN_FS_COLOR, &win->fscol);
- win_alloc_color(e, SEL_COLOR, &win->selcol);
- win_alloc_color(e, BAR_BG_COLOR, &win->bar.bgcol);
- win_alloc_color(e, BAR_FG_COLOR, &win->bar.fgcol);
+ win_alloc_color(e, win_res(e->dpy, RES_CLASS ".foreground", SEL_COLOR),
+ &win->selcol);
+ win_alloc_color(e, win_res(e->dpy, RES_CLASS ".foreground", BAR_BG_COLOR),
+ &win->bar.bgcol);
+ win_alloc_color(e, win_res(e->dpy, RES_CLASS ".background", BAR_FG_COLOR),
+ &win->bar.fgcol);
win->bar.l.size = BAR_L_LEN;
win->bar.r.size = BAR_R_LEN;