#include "kernel/parse.h"
+#include "kernel/prop.h"
#include "keyboard.h"
void keyparse(ParseToken *token)
top = token->data.identifier;
return;
} else {
- yyerror("syntax error (expected Key)");
+ yyerror("syntax error (expected kbind)");
err = TRUE;
}
} else if (chain == NULL) {
action = action_from_string(token->data.identifier);
/* no move/resize with the keyboard */
- if (action &&
- (action->func == action_move ||
- action->func == action_resize)) {
+ if (action && action->func == action_moveresize &&
+ action->data.moveresize.corner !=
+ prop_atoms.net_wm_moveresize_move_keyboard &&
+ action->data.moveresize.corner !=
+ prop_atoms.net_wm_moveresize_size_keyboard) {
action_free(action);
action = NULL;
}
/* these use the argument */
if (action->func == action_execute || action->func == action_restart)
action->data.execute.path = g_strdup(arg_str);
+ else if (action->func == action_showmenu)
+ action->data.showmenu.name = g_strdup(arg_str);
if ((action->func == action_desktop ||
action->func == action_send_to_desktop) &&
arg_int)
if (kbind(strchain, action))
action = NULL; /* don't free this if kbind succeeds */
else
- yyerror("failed to add binding");
+ yyerror("failed to add key binding");
/* free the char*'s */
g_list_free(strchain);