From 32fde273d371c834e96010d5944555b84d9d6225 Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 26 Mar 2016 10:44:57 +0100 Subject: lua: don't require key for mp.add_key_binding() Requested. The intention is that scripts can provide mappable actions for key bindings without setting a default key. --- DOCS/man/lua.rst | 3 ++- player/lua/defaults.lua | 7 ++++--- 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() -- cgit v1.2.3