History

defaults.js: support scalable mp.add_key_binding()

nanahi committed 2 years ago

Commit 5fd4bfb1 parent e3e22de1 file · +7 −5Browse files

Unified · Split

player/javascript/defaults.js+7−5
@@ -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}
247var binds = new_cache();247var binds = new_cache();
248 248
249function dispatch_key_binding(name, state, key_name, key_text) {249function 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 invoked251 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
255var binds_tid = 0; // flush timer id. actual id's are always true-thy255var 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 || undefined316 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-binding338 binds[name] = key_data; // used by user and/or our (key) script-binding
337 sched_bindings_flush();339 sched_bindings_flush();
338}340}

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t