summaryrefslogtreecommitdiffstats
path: root/player
diff options
context:
space:
mode:
Diffstat (limited to 'player')
-rw-r--r--player/command.c7
-rw-r--r--player/lua/defaults.lua10
2 files changed, 11 insertions, 6 deletions
diff --git a/player/command.c b/player/command.c
index 28f48b43e1..00ebddf343 100644
--- a/player/command.c
+++ b/player/command.c
@@ -5516,9 +5516,10 @@ static void cmd_script_binding(void *p)
char state[3] = {'p', incmd->is_mouse_button ? 'm' : '-'};
if (incmd->is_up_down)
state[0] = incmd->repeated ? 'r' : (incmd->is_up ? 'u' : 'd');
- event.num_args = 4;
- event.args = (const char*[4]){"key-binding", name, state,
- incmd->key_name ? incmd->key_name : ""};
+ event.num_args = 5;
+ event.args = (const char*[5]){"key-binding", name, state,
+ incmd->key_name ? incmd->key_name : "",
+ incmd->key_text ? incmd->key_text : ""};
if (mp_client_send_event_dup(mpctx, target,
MPV_EVENT_CLIENT_MESSAGE, &event) < 0)
{
diff --git a/player/lua/defaults.lua b/player/lua/defaults.lua
index 127e92036b..38b6a9d04b 100644
--- a/player/lua/defaults.lua
+++ b/player/lua/defaults.lua
@@ -54,10 +54,10 @@ local function reserve_binding()
return "__keybinding" .. tostring(message_id)
end
-local function dispatch_key_binding(name, state, key_name)
+local function dispatch_key_binding(name, state, key_name, key_text)
local fn = dispatch_key_bindings[name]
if fn then
- fn(name, state, key_name)
+ fn(name, state, key_name, key_text)
end
end
@@ -176,11 +176,15 @@ local function add_binding(attrs, key, name, fn, rp)
["r"] = "repeat",
["p"] = "press",
}
- key_cb = function(name, state, key_name)
+ key_cb = function(name, state, key_name, key_text)
+ if key_text == "" then
+ key_text = nil
+ end
fn({
event = key_states[state:sub(1, 1)] or "unknown",
is_mouse = state:sub(2, 2) == "m",
key_name = key_name,
+ key_text = key_text,
})
end
msg_cb = function()