summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--DOCS/man/lua.rst3
-rw-r--r--player/lua/defaults.lua7
2 files changed, 6 insertions, 4 deletions
diff --git a/DOCS/man/lua.rst b/DOCS/man/lua.rst
index 2e9bfa508f..6b2c5af031 100644
--- a/DOCS/man/lua.rst
+++ b/DOCS/man/lua.rst
@@ -192,7 +192,8 @@ The ``mp`` module is preloaded, although it can be loaded manually with
Register callback to be run on a key binding. The binding will be mapped to
the given ``key``, which is a string describing the physical key. This uses
the same key names as in input.conf, and also allows combinations
- (e.g. ``ctrl+a``).
+ (e.g. ``ctrl+a``). If the key is empty or ``nil``, no physical key is
+ registered, but the user still can create own bindings (see below).
After calling this function, key presses will cause the function ``fn`` to
be called (unless the user remapped the key with another binding).
diff --git a/player/lua/defaults.lua b/player/lua/defaults.lua
index 38905a610b..a12e5bd3c3 100644
--- a/player/lua/defaults.lua
+++ b/player/lua/defaults.lua
@@ -145,7 +145,7 @@ local function update_key_bindings()
end
local cfg = ""
for k, v in pairs(key_bindings) do
- if v.forced ~= def then
+ if v.bind and v.forced ~= def then
cfg = cfg .. v.bind .. "\n"
end
end
@@ -161,7 +161,6 @@ local function add_binding(attrs, key, name, fn, rp)
fn = name
name = reserve_binding()
end
- local bind = key
local repeatable = rp == "repeatable" or rp["repeatable"]
if rp["forced"] then
attrs.forced = true
@@ -205,7 +204,9 @@ local function add_binding(attrs, key, name, fn, rp)
end
msg_cb = fn
end
- attrs.bind = bind .. " script-binding " .. mp.script_name .. "/" .. name
+ if key and #key > 0 then
+ attrs.bind = key .. " script-binding " .. mp.script_name .. "/" .. name
+ end
attrs.name = name
key_bindings[name] = attrs
update_key_bindings()