summaryrefslogtreecommitdiffstats
path: root/input/input.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2019-11-21 23:01:56 +0100
committerwm4 <wm4@nowhere>2019-11-22 01:15:08 +0100
commit21f2468d67e11eff7ede0d85fa6f4ab5c4f7de84 (patch)
tree0eccc529be050bdfe602ccbbcebdc04f4f193e71 /input/input.c
parenteab5457e47389d5eeb79010f2f35e4d6613df86f (diff)
downloadmpv-21f2468d67e11eff7ede0d85fa6f4ab5c4f7de84.tar.bz2
mpv-21f2468d67e11eff7ede0d85fa6f4ab5c4f7de84.tar.xz
input: add text produced by key to script key events
Particularly for "any_unicode" mappings, so they don't have to special-case keys like '#' and ' ', which are normally mapped to symbolic names for input.conf reasons. (Though admittedly, this is a pretty minor thing, since API users could map these manually.)
Diffstat (limited to 'input/input.c')
-rw-r--r--input/input.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/input/input.c b/input/input.c
index 89ef1ace90..89c2571d2b 100644
--- a/input/input.c
+++ b/input/input.c
@@ -481,6 +481,11 @@ static mp_cmd_t *get_cmd_from_keys(struct input_ctx *ictx, char *force_section,
ret->key_name = talloc_steal(ret, mp_input_get_key_combo_name(&code, 1));
MP_TRACE(ictx, "key '%s' -> '%s' in '%s'\n",
ret->key_name, cmd->cmd, ret->input_section);
+ if (MP_KEY_IS_UNICODE(code)) {
+ bstr text = {0};
+ mp_append_utf8_bstr(ret, &text, code);
+ ret->key_text = text.start;
+ }
ret->is_mouse_button = code & MP_KEY_EMIT_ON_UP;
} else {
char *key_buf = mp_input_get_key_combo_name(&code, 1);