summaryrefslogtreecommitdiffstats
path: root/input/input.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-12-23 19:10:38 +0100
committerwm4 <wm4@nowhere>2015-12-23 19:10:48 +0100
commit3e1aed8f40f0c35f78c74502050630519895c972 (patch)
tree72a8cd2608e7a841c0efd268ddbb7ff0a687745f /input/input.c
parentff520054c86898613ae58f358b8554760ef30e15 (diff)
downloadmpv-3e1aed8f40f0c35f78c74502050630519895c972.tar.bz2
mpv-3e1aed8f40f0c35f78c74502050630519895c972.tar.xz
input: add key name to script-binding command response
The "script-binding" command is used by the Lua scripting wrapper to register key bindings on the fly. It's also the only way to get fine- grained information about key events (such as separate key up/down events). This information is sent via a "key-binding" message when the state of a key changes. Extend it to send name of the mapped key itself. Previously, it was assumed that the user just uses an unique identifier for the binding's name, so it wasn't needed. With this change, a user can map exactly the same command to multiple keys, which is useful especially with the next commit. Part of #2612.
Diffstat (limited to 'input/input.c')
-rw-r--r--input/input.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/input/input.c b/input/input.c
index e1dfe2e616..58907ccd50 100644
--- a/input/input.c
+++ b/input/input.c
@@ -460,11 +460,10 @@ static mp_cmd_t *get_cmd_from_keys(struct input_ctx *ictx, char *force_section,
mp_cmd_t *ret = mp_input_parse_cmd(ictx, bstr0(cmd->cmd), cmd->location);
if (ret) {
ret->input_section = cmd->owner->section;
+ ret->key_name = talloc_steal(ret, mp_input_get_key_combo_name(&code, 1));
if (mp_msg_test(ictx->log, MSGL_DEBUG)) {
- char *keyname = mp_input_get_key_combo_name(&code, 1);
MP_DBG(ictx, "key '%s' -> '%s' in '%s'\n",
- keyname, cmd->cmd, ret->input_section);
- talloc_free(keyname);
+ ret->key_name, cmd->cmd, ret->input_section);
}
ret->is_mouse_button = code & MP_KEY_EMIT_ON_UP;
} else {