summary refs log tree commit diff
path: root/parse.y
diff options
context:
space:
mode:
authorokan <okan>2012-12-17 02:28:45 +0000
committerokan <okan>2012-12-17 02:28:45 +0000
commit6900cd36121062f81f29ec3651aa1ee8807edbe1 (patch)
treebbbf15f9401923e29d45105572ce8727e74c3267 /parse.y
parenta3aaad2c187278b7ac1cf75cb03882dd3d20f29b (diff)
downloadcwm-6900cd36121062f81f29ec3651aa1ee8807edbe1.tar.gz
cwm-6900cd36121062f81f29ec3651aa1ee8807edbe1.tar.xz
cwm-6900cd36121062f81f29ec3651aa1ee8807edbe1.zip
non-trivial menu drawing rewrite, moving to Xft and solving various
font/color drawing issues; from Alexander Polakov
Diffstat (limited to 'parse.y')
-rw-r--r--parse.y23
1 files changed, 16 insertions, 7 deletions
diff --git a/parse.y b/parse.y
index c89c038..b36ee26 100644
--- a/parse.y
+++ b/parse.y
@@ -73,7 +73,8 @@ typedef struct {
 %token	COLOR SNAPDIST
 %token	ACTIVEBORDER INACTIVEBORDER
 %token	GROUPBORDER UNGROUPBORDER
-%token	MENUBG MENUFG FONTCOLOR
+%token	MENUBG MENUFG
+%token	FONTCOLOR FONTSELCOLOR
 %token	ERROR
 %token	<v.string>		STRING
 %token	<v.number>		NUMBER
@@ -186,16 +187,20 @@ colors		: ACTIVEBORDER STRING {
 			conf->color[CWM_COLOR_BORDER_UNGROUP].name = $2;
 		}
 		| MENUBG STRING {
-			free(conf->color[CWM_COLOR_BG_MENU].name);
-			conf->color[CWM_COLOR_BG_MENU].name = $2;
+			free(conf->menucolor[CWM_COLOR_MENU_BG]);
+			conf->menucolor[CWM_COLOR_MENU_BG] = $2;
 		}
 		| MENUFG STRING {
-			free(conf->color[CWM_COLOR_FG_MENU].name);
-			conf->color[CWM_COLOR_FG_MENU].name = $2;
+			free(conf->menucolor[CWM_COLOR_MENU_FG]);
+			conf->menucolor[CWM_COLOR_MENU_FG] = $2;
 		}
 		| FONTCOLOR STRING {
-			free(conf->color[CWM_COLOR_FONT].name);
-			conf->color[CWM_COLOR_FONT].name = $2;
+			free(conf->menucolor[CWM_COLOR_MENU_FONT]);
+			conf->menucolor[CWM_COLOR_MENU_FONT] = $2;
+		}
+		| FONTSELCOLOR STRING {
+			free(conf->menucolor[CWM_COLOR_MENU_FONT_SEL]);
+			conf->menucolor[CWM_COLOR_MENU_FONT_SEL] = $2;
 		}
 		;
 %%
@@ -247,6 +252,7 @@ lookup(char *s)
 		{ "mousebind",		MOUSEBIND},
 		{ "moveamount",		MOVEAMOUNT},
 		{ "no",			NO},
+		{ "selfont", 		FONTSELCOLOR},
 		{ "snapdist",		SNAPDIST},
 		{ "sticky",		STICKY},
 		{ "ungroupborder",	UNGROUPBORDER},
@@ -575,6 +581,9 @@ parse_config(const char *filename, struct conf *xconf)
 		for (i = 0; i < CWM_COLOR_MAX; i++)
 			xconf->color[i].name = conf->color[i].name;
 
+		for (i = 0; i < CWM_COLOR_MENU_MAX; i++)
+			xconf->menucolor[i]= conf->menucolor[i];
+
 		xconf->font = conf->font;
 	}