From 3444a0fb6e6ac49a71defc3c03497da1ef42cc6d Mon Sep 17 00:00:00 2001 From: nanahi <130121847+na-na-hi@users.noreply.github.com> Date: Mon, 18 Nov 2024 11:39:12 -0500 Subject: [PATCH] defaults.js: support custom arg in mp.add_key_binding() --- player/javascript/defaults.js | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/player/javascript/defaults.js b/player/javascript/defaults.js index 505dca8d85296..b08c27951ba13 100644 --- a/player/javascript/defaults.js +++ b/player/javascript/defaults.js @@ -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, key_text, scale) { +function dispatch_key_binding(name, state, key_name, key_text, scale, arg) { var cb = binds[name] ? binds[name].cb : false; if (cb) // "script-binding [/]" command was invoked - cb(state, key_name, key_text, scale); + cb(state, key_name, key_text, scale, arg); } var binds_tid = 0; // flush timer id. actual id's are always true-thy @@ -314,7 +314,8 @@ function add_binding(forced, key, name, fn, opts) { canceled: state[2] == "c", key_name: key_name || undefined, key_text: key_text || undefined, - scale: scale ? parseFloat(scale) : 1.0 + scale: scale ? parseFloat(scale) : 1.0, + arg: arg }); } } else { @@ -333,8 +334,11 @@ function add_binding(forced, key, name, fn, opts) { } var prefix = key_data.scalable ? "" : " nonscalable"; - if (key) + if (key) { key_data.input = key + prefix + " script-binding " + mp.script_name + "/" + name; + if (key_data.arg) + key_data.input = key_data.input + " " + key_data.arg; + } binds[name] = key_data; // used by user and/or our (key) script-binding sched_bindings_flush(); }