Unified · Split
| @@ -246,10 +246,10 @@ mp.get_osd_margins = function get_osd_margins() { · 245 unmodified lines | |||
| 246 | // {cb: fn, forced: bool, maybe input: str, repeatable: bool, complex: bool} | 246 | // {cb: fn, forced: bool, maybe input: str, repeatable: bool, complex: bool} |
| 247 | var binds = new_cache(); | 247 | var binds = new_cache(); |
| 248 | 248 | ||
| 249 | function dispatch_key_binding(name, state, key_name, key_text) { | 249 | function dispatch_key_binding(name, state, key_name, key_text, scale) { |
| 250 | var cb = binds[name] ? binds[name].cb : false; | 250 | var cb = binds[name] ? binds[name].cb : false; |
| 251 | if (cb) // "script-binding [<script_name>/]<name>" command was invoked | 251 | if (cb) // "script-binding [<script_name>/]<name>" command was invoked |
| 252 | cb(state, key_name, key_text); | 252 | cb(state, key_name, key_text, scale); |
| 253 | } | 253 | } |
| 254 | 254 | ||
| 255 | var binds_tid = 0; // flush timer id. actual id's are always true-thy | 255 | var binds_tid = 0; // flush timer id. actual id's are always true-thy |
| @@ -307,13 +307,14 @@ function add_binding(forced, key, name, fn, opts) { · 51 unmodified lines | |||
| 307 | fn({event: "press", is_mouse: false}); | 307 | fn({event: "press", is_mouse: false}); |
| 308 | }); | 308 | }); |
| 309 | var KEY_STATES = { u: "up", d: "down", r: "repeat", p: "press" }; | 309 | var KEY_STATES = { u: "up", d: "down", r: "repeat", p: "press" }; |
| 310 | key_data.cb = function key_cb(state, key_name, key_text) { | 310 | key_data.cb = function key_cb(state, key_name, key_text, scale) { |
| 311 | fn({ | 311 | fn({ |
| 312 | event: KEY_STATES[state[0]] || "unknown", | 312 | event: KEY_STATES[state[0]] || "unknown", |
| 313 | is_mouse: state[1] == "m", | 313 | is_mouse: state[1] == "m", |
| 314 | canceled: state[2] == "c", | 314 | canceled: state[2] == "c", |
| 315 | key_name: key_name || undefined, | 315 | key_name: key_name || undefined, |
| 316 | key_text: key_text || undefined | 316 | key_text: key_text || undefined, |
| 317 | scale: scale ? parseFloat(scale) : 1.0 | ||
| 317 | }); | 318 | }); |
| 318 | } | 319 | } |
| 319 | } else { | 320 | } else { |
| @@ -331,8 +332,9 @@ function add_binding(forced, key, name, fn, opts) { · 11 unmodified lines | |||
| 331 | } | 332 | } |
| 332 | } | 333 | } |
| 333 | 334 | ||
| 335 | var prefix = key_data.scalable ? "" : " nonscalable"; | ||
| 334 | if (key) | 336 | if (key) |
| 335 | key_data.input = key + " script-binding " + mp.script_name + "/" + name; | 337 | key_data.input = key + prefix + " script-binding " + mp.script_name + "/" + name; |
| 336 | binds[name] = key_data; // used by user and/or our (key) script-binding | 338 | binds[name] = key_data; // used by user and/or our (key) script-binding |
| 337 | sched_bindings_flush(); | 339 | sched_bindings_flush(); |
| 338 | } | 340 | } |