aboutsummaryrefslogtreecommitdiff
path: root/key-bindings.c
diff options
context:
space:
mode:
Diffstat (limited to 'key-bindings.c')
-rw-r--r--key-bindings.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/key-bindings.c b/key-bindings.c
index 04a5cef7..09f0e0b1 100644
--- a/key-bindings.c
+++ b/key-bindings.c
@@ -521,7 +521,7 @@ key_bindings_init(void)
pr = cmd_parse_from_string(defaults[i], NULL);
if (pr->status != CMD_PARSE_SUCCESS)
fatalx("bad default key: %s", defaults[i]);
- cmdq_append(NULL, cmdq_get_command(pr->cmdlist, NULL, NULL, 0));
+ cmdq_append(NULL, cmdq_get_command(pr->cmdlist, NULL));
cmd_list_free(pr->cmdlist);
}
}
@@ -535,10 +535,11 @@ key_bindings_read_only(struct cmdq_item *item, __unused void *data)
struct cmdq_item *
key_bindings_dispatch(struct key_binding *bd, struct cmdq_item *item,
- struct client *c, struct mouse_event *m, struct cmd_find_state *fs)
+ struct client *c, struct key_event *event, struct cmd_find_state *fs)
{
struct cmdq_item *new_item;
- int readonly;
+ struct cmdq_state *new_state;
+ int readonly, flags = 0;
if (c == NULL || (~c->flags & CLIENT_READONLY))
readonly = 1;
@@ -547,9 +548,11 @@ key_bindings_dispatch(struct key_binding *bd, struct cmdq_item *item,
if (!readonly)
new_item = cmdq_get_callback(key_bindings_read_only, NULL);
else {
- new_item = cmdq_get_command(bd->cmdlist, fs, m, 0);
if (bd->flags & KEY_BINDING_REPEAT)
- cmdq_get_state(new_item)->flags |= CMDQ_STATE_REPEAT;
+ flags |= CMDQ_STATE_REPEAT;
+ new_state = cmdq_new_state(fs, event, flags);
+ new_item = cmdq_get_command(bd->cmdlist, new_state);
+ cmdq_free_state(new_state);
}
if (item != NULL)
new_item = cmdq_insert_after(item, new_item);