X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=plugins%2Fkeyboard%2Fkeysrc.yacc;h=d779da838464daec914ee6caf555d71c15ccbc90;hb=1fb5c4b595677a029c75b75ef85a69ec90160da8;hp=8772fa178ad619183cd01fce26df6efacacd0eb7;hpb=91ebde9e8842678e0d0704dc7945b2b84aba314f;p=chaz%2Fopenbox diff --git a/plugins/keyboard/keysrc.yacc b/plugins/keyboard/keysrc.yacc index 8772fa17..d779da83 100644 --- a/plugins/keyboard/keysrc.yacc +++ b/plugins/keyboard/keysrc.yacc @@ -25,8 +25,6 @@ static char *path; %token INTEGER; %token STRING %token FIELD -%token EXECUTE -%token RESTART %token DESKTOP %type fields @@ -36,10 +34,8 @@ static char *path; config: | config '\n' | config fields FIELD '\n' { addbinding($2, $3, NULL, 0); } - | config fields DESKTOP INTEGER '\n' { addbinding($2, $3, NULL, $4); } - | config fields RESTART '\n' { addbinding($2, $3, NULL, 0); } - | config fields EXECUTE STRING '\n' { addbinding($2, $3, $4, 0); } - | config fields RESTART STRING '\n' { addbinding($2, $3, $4, 0); } + | config fields FIELD INTEGER '\n' { addbinding($2, $3, NULL, $4); } + | config fields FIELD STRING '\n' { addbinding($2, $3, $4, 0); } ; fields: @@ -90,8 +86,15 @@ static void addbinding(GList *keylist, char *action, char *apath, int num) /* these have extra data! */ if (a->func == action_execute || a->func == action_restart) a->data.execute.path = apath; + else + g_free(apath); if (a->func == action_desktop) a->data.desktop.desk = (unsigned) num + 1; + if (a->func == action_move_relative_horz || + a->func == action_move_relative_vert || + a->func == action_resize_relative_horz || + a->func == action_resize_relative_vert) + a->data.relative.delta = num; if (!kbind(keylist, a)) { action_free(a);