diff options
author | Harry Jeffery <harry@exec64.co.uk> | 2019-08-18 14:54:26 +0100 |
---|---|---|
committer | Harry Jeffery <harry@exec64.co.uk> | 2019-08-18 14:54:26 +0100 |
commit | 00ad6b1d8e946069963bc2ab09f4f01c8e81ab03 (patch) | |
tree | e3e0cef7a0c4ed26a1c7a4cb29630b0af3c92b48 /src/imv.c | |
parent | 901243b3f97368c05f7ed1c723d4ef5d18f634a1 (diff) | |
download | imv-00ad6b1d8e946069963bc2ab09f4f01c8e81ab03.tar.gz |
imv: Add bind command
Diffstat (limited to 'src/imv.c')
-rw-r--r-- | src/imv.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -196,6 +196,7 @@ static void command_toggle_playing(struct list *args, const char *argstr, void * static void command_set_scaling_mode(struct list *args, const char *argstr, void *data); static void command_set_slideshow_duration(struct list *args, const char *argstr, void *data); static void command_set_background(struct list *args, const char *argstr, void *data); +static void command_bind(struct list *args, const char *argstr, void *data); static bool setup_window(struct imv *imv); static void consume_internal_event(struct imv *imv, struct internal_event *event); @@ -542,6 +543,7 @@ struct imv *imv_create(void) imv_command_register(imv->commands, "scaling", &command_set_scaling_mode); imv_command_register(imv->commands, "slideshow", &command_set_slideshow_duration); imv_command_register(imv->commands, "background", &command_set_background); + imv_command_register(imv->commands, "bind", &command_bind); imv_command_alias(imv->commands, "q", "quit"); imv_command_alias(imv->commands, "n", "next"); @@ -1682,6 +1684,18 @@ static void command_set_background(struct list *args, const char *argstr, void * } } +static void command_bind(struct list *args, const char *argstr, void *data) +{ + (void)argstr; + struct imv *imv = data; + if (args->len >= 3) { + const char *keys = args->items[1]; + char *commands = list_to_string(args, " ", 2); + add_bind(imv, keys, commands); + free(commands); + } +} + static void update_env_vars(struct imv *imv) { char str[64]; |