diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst index 8c5de0a6bc..cd360d600b 100644 --- a/DOCS/man/input.rst +++ b/DOCS/man/input.rst @@ -344,6 +344,10 @@ Remember to quote string arguments in input.conf (see `Flat command syntax`_). the minimum, on underflow set it to the maximum. If ``up`` or ``down`` is omitted, assume ``up``. + Whether or not key-repeat is enabled by default depends on the property. + Currently properties with continuous values are repeatable by default (like + ``volume``), while discrete values are not (like ``osd-level``). + ``multiply `` Similar to ``add``, but multiplies the property or option with the numeric value. 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;