diff --git a/calmwm.h b/calmwm.h index 7237e28..543300e 100644 --- a/calmwm.h +++ b/calmwm.h @@ -97,11 +97,6 @@ enum cwmcolor { CWM_COLOR_MAX }; -struct color { - char *name; - unsigned long pixel; -}; - struct geom { int x; int y; @@ -211,7 +206,7 @@ struct screen_ctx { Colormap colormap; Window rootwin; Window menuwin; - struct color color[CWM_COLOR_MAX]; + unsigned long color[CWM_COLOR_MAX]; int cycling; struct geom view; /* viewable area */ struct geom work; /* workable area, gap-applied */ @@ -291,7 +286,7 @@ struct conf { #define CONF_SNAPDIST 0 int snapdist; struct gap gap; - struct color color[CWM_COLOR_MAX]; + char *color[CWM_COLOR_MAX]; char *menucolor[CWM_COLOR_MENU_MAX]; char termpath[MAXPATHLEN]; char lockpath[MAXPATHLEN]; diff --git a/client.c b/client.c index c76c1f4..b61b7ef 100644 --- a/client.c +++ b/client.c @@ -475,17 +475,17 @@ client_draw_border(struct client_ctx *cc) if (cc->active) switch (cc->flags & CLIENT_HIGHLIGHT) { case CLIENT_GROUP: - pixel = sc->color[CWM_COLOR_BORDER_GROUP].pixel; + pixel = sc->color[CWM_COLOR_BORDER_GROUP]; break; case CLIENT_UNGROUP: - pixel = sc->color[CWM_COLOR_BORDER_UNGROUP].pixel; + pixel = sc->color[CWM_COLOR_BORDER_UNGROUP]; break; default: - pixel = sc->color[CWM_COLOR_BORDER_ACTIVE].pixel; + pixel = sc->color[CWM_COLOR_BORDER_ACTIVE]; break; } else - pixel = sc->color[CWM_COLOR_BORDER_INACTIVE].pixel; + pixel = sc->color[CWM_COLOR_BORDER_INACTIVE]; XSetWindowBorderWidth(X_Dpy, cc->win, cc->bwidth); XSetWindowBorder(X_Dpy, cc->win, pixel); diff --git a/conf.c b/conf.c index f583f78..b9f5bce 100644 --- a/conf.c +++ b/conf.c @@ -71,11 +71,11 @@ static char *menu_color_binds[CWM_COLOR_MENU_MAX] = { "", /* CWM_COLOR_MENU_FONT_SEL */ }; -static struct color color_binds[CWM_COLOR_MAX] = { - { "#CCCCCC", 0 }, /* CWM_COLOR_BORDER_ACTIVE */ - { "#666666", 0 }, /* CWM_COLOR_BORDER_INACTIVE */ - { "blue", 0 }, /* CWM_COLOR_BORDER_GROUP */ - { "red", 0 }, /* CWM_COLOR_BORDER_UNGROUP */ +static char *color_binds[CWM_COLOR_MAX] = { + "#CCCCCC", /* CWM_COLOR_BORDER_ACTIVE */ + "#666666", /* CWM_COLOR_BORDER_INACTIVE */ + "blue", /* CWM_COLOR_BORDER_GROUP */ + "red", /* CWM_COLOR_BORDER_UNGROUP */ }; void @@ -84,7 +84,7 @@ conf_color(struct conf *c, struct screen_ctx *sc) int i; for (i = 0; i < CWM_COLOR_MAX; i++) - sc->color[i].pixel = xu_getcolor(sc, c->color[i].name); + sc->color[i] = xu_getcolor(sc, c->color[i]); } static struct { @@ -184,7 +184,7 @@ conf_init(struct conf *c) conf_mousebind(c, m_binds[i].key, m_binds[i].func); for (i = 0; i < nitems(color_binds); i++) - c->color[i].name = xstrdup(color_binds[i].name); + c->color[i] = xstrdup(color_binds[i]); for (i = 0; i < nitems(menu_color_binds); i++) c->menucolor[i] = xstrdup(menu_color_binds[i]); @@ -237,7 +237,7 @@ conf_clear(struct conf *c) } for (i = 0; i < CWM_COLOR_MAX; i++) - free(c->color[i].name); + free(c->color[i]); free(c->font); } diff --git a/parse.y b/parse.y index 4f00198..fe8ddb2 100644 --- a/parse.y +++ b/parse.y @@ -171,20 +171,20 @@ color : COLOR colors ; colors : ACTIVEBORDER STRING { - free(conf->color[CWM_COLOR_BORDER_ACTIVE].name); - conf->color[CWM_COLOR_BORDER_ACTIVE].name = $2; + free(conf->color[CWM_COLOR_BORDER_ACTIVE]); + conf->color[CWM_COLOR_BORDER_ACTIVE] = $2; } | INACTIVEBORDER STRING { - free(conf->color[CWM_COLOR_BORDER_INACTIVE].name); - conf->color[CWM_COLOR_BORDER_INACTIVE].name = $2; + free(conf->color[CWM_COLOR_BORDER_INACTIVE]); + conf->color[CWM_COLOR_BORDER_INACTIVE] = $2; } | GROUPBORDER STRING { - free(conf->color[CWM_COLOR_BORDER_GROUP].name); - conf->color[CWM_COLOR_BORDER_GROUP].name = $2; + free(conf->color[CWM_COLOR_BORDER_GROUP]); + conf->color[CWM_COLOR_BORDER_GROUP] = $2; } | UNGROUPBORDER STRING { - free(conf->color[CWM_COLOR_BORDER_UNGROUP].name); - conf->color[CWM_COLOR_BORDER_UNGROUP].name = $2; + free(conf->color[CWM_COLOR_BORDER_UNGROUP]); + conf->color[CWM_COLOR_BORDER_UNGROUP] = $2; } | MENUBG STRING { free(conf->menucolor[CWM_COLOR_MENU_BG]); @@ -579,7 +579,7 @@ parse_config(const char *filename, struct conf *xconf) sizeof(xconf->lockpath)); for (i = 0; i < CWM_COLOR_MAX; i++) - xconf->color[i].name = conf->color[i].name; + xconf->color[i] = conf->color[i]; for (i = 0; i < CWM_COLOR_MENU_MAX; i++) xconf->menucolor[i] = conf->menucolor[i];