js: complex key-binding: send also key_text

This is doumented and has been part of the table in lua, but until
now not in the JS object.

Fixes #13448
This commit is contained in:
Avi Halachmi (:avih) 2024-02-09 16:54:57 +02:00
parent a45518cf57
commit d70c77b6b6
1 changed files with 5 additions and 4 deletions

View File

@ -246,10 +246,10 @@ mp.get_osd_margins = function get_osd_margins() {
// {cb: fn, forced: bool, maybe input: str, repeatable: bool, complex: bool}
var binds = new_cache();
function dispatch_key_binding(name, state, key_name) {
function dispatch_key_binding(name, state, key_name, key_text) {
var cb = binds[name] ? binds[name].cb : false;
if (cb) // "script-binding [<script_name>/]<name>" command was invoked
cb(state, key_name);
cb(state, key_name, key_text);
}
var binds_tid = 0; // flush timer id. actual id's are always true-thy
@ -307,11 +307,12 @@ function add_binding(forced, key, name, fn, opts) {
fn({event: "press", is_mouse: false});
});
var KEY_STATES = { u: "up", d: "down", r: "repeat", p: "press" };
key_data.cb = function key_cb(state, key_name) {
key_data.cb = function key_cb(state, key_name, key_text) {
fn({
event: KEY_STATES[state[0]] || "unknown",
is_mouse: state[1] == "m",
key_name: key_name || undefined
key_name: key_name || undefined,
key_text: key_text || undefined
});
}
} else {