diff options
-rw-r--r-- | input/cmd_list.c | 4 | ||||
-rw-r--r-- | player/lua/defaults.lua | 9 |
2 files changed, 8 insertions, 5 deletions
diff --git a/input/cmd_list.c b/input/cmd_list.c index 1edc28d521..d5bd203611 100644 --- a/input/cmd_list.c +++ b/input/cmd_list.c @@ -166,7 +166,9 @@ const struct mp_cmd_def mp_cmds[] = { { MP_CMD_VO_CMDLINE, "vo_cmdline", { ARG_STRING } }, - { MP_CMD_SCRIPT_BINDING, "script_binding", { ARG_STRING } }, + { MP_CMD_SCRIPT_BINDING, "script_binding", { ARG_STRING }, + .allow_auto_repeat = true}, + { MP_CMD_SCRIPT_MESSAGE, "script_message", { ARG_STRING }, .vararg = true }, { MP_CMD_SCRIPT_MESSAGE_TO, "script_message_to", { ARG_STRING, ARG_STRING }, .vararg = true }, diff --git a/player/lua/defaults.lua b/player/lua/defaults.lua index 7e038dfbb8..55f5bddf39 100644 --- a/player/lua/defaults.lua +++ b/player/lua/defaults.lua @@ -75,7 +75,7 @@ function mp.set_key_bindings(list, section, flags) local is_mouse = state:sub(2, 2) == "m" local def = (is_mouse and "u") or "d" if event == "r" then - event = "d" + return end if event == "p" and cb then cb() @@ -142,9 +142,7 @@ local function add_binding(attrs, key, name, fn, rp) name = reserve_binding() end local bind = key - if rp == "repeatable" or rp["repeatable"] then - bind = bind .. " repeatable" - end + local repeatable = rp == "repeatable" or rp["repeatable"] if rp["forced"] then attrs.forced = true end @@ -176,6 +174,9 @@ local function add_binding(attrs, key, name, fn, rp) -- Also, key repeat triggers the binding again. local event = state:sub(1, 1) local is_mouse = state:sub(2, 2) == "m" + if event == "r" and not repeatable then + return + end if is_mouse and event == "u" then fn() elseif (not is_mouse) and (event == "d" or event == "r") then |