summaryrefslogtreecommitdiffstats
path: root/player
diff options
context:
space:
mode:
authorAvi Halachmi (:avih) <avihpit@yahoo.com>2021-08-18 20:38:35 +0300
committeravih <avih@users.noreply.github.com>2021-08-19 15:39:19 +0300
commit007c728ad27cc9eb3d0315d6d15fd3bc5f055cc5 (patch)
tree808b6627e31f8fb44826579c890e0c752b095448 /player
parent8489249af9823e45ce606403b6417f26869fa4a4 (diff)
downloadmpv-007c728ad27cc9eb3d0315d6d15fd3bc5f055cc5.tar.bz2
mpv-007c728ad27cc9eb3d0315d6d15fd3bc5f055cc5.tar.xz
command: cycle: respect the prefix "repeatable"
The "cycle" command _declaration_ enables repeatability by default, however, the command handler applies additional logic to augment it, based on the property which is being cycled - using some guesswork. Specifically, properties with discrete values are not repeatable (like sub or osd-level), while continuous properties are repeatable (like volume). Previously, the "repeatable" prefix could not override this additional logic. This commit changes the behavior so that the logic affects only the default repeatability (still based on the property like before), however, the "repeatable" prefix is now allowed to override it.
Diffstat (limited to 'player')
-rw-r--r--player/command.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/player/command.c b/player/command.c
index 04d5e076ae..f2fb031819 100644
--- a/player/command.c
+++ b/player/command.c
@@ -4921,7 +4921,9 @@ static void cmd_add_cycle(void *p)
bool is_cycle = !!cmd->priv;
char *property = cmd->args[0].v.s;
- if (cmd->cmd->repeated && !check_property_autorepeat(property, mpctx)) {
+ if (cmd->cmd->repeated && !check_property_autorepeat(property, mpctx) &&
+ !(cmd->cmd->flags & MP_ALLOW_REPEAT) /* "repeatable" prefix */ )
+ {
MP_VERBOSE(mpctx, "Dropping command '%s' from auto-repeated key.\n",
cmd->cmd->original);
return;