From 7dd69ef77c6aa80067c13f76aa0b78d63fbc4eda Mon Sep 17 00:00:00 2001 From: wm4 Date: Sat, 28 Apr 2018 18:14:43 +0200 Subject: command: change cycle-value command behavior Instead of using an internal counter to keep track of the value that was set last, attempt to find the current value of the property/option in the value list, and then set the next value in the list. There are some potential problems. If a property refuses to accept a specific value, the cycle-values command will fail, and start from the same position again. It can't know that it's supposed to skip the next value. The same can happen to properties which behave "strangely", such as the "aspect" property, which will return the current aspect if you write "-1" to it. As a consequence, cycle-values can appear to get "stuck". I still think the new behavior is what users expect more, and which is generally more useful. We won't restore the ability to get the old behavior, unless we decide to revert this commit entirely. Fixes #5772, and hopefully other complaints. --- DOCS/man/input.rst | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) (limited to 'DOCS/man/input.rst') diff --git a/DOCS/man/input.rst b/DOCS/man/input.rst index 4a59a919f0..58e2b9c27d 100644 --- a/DOCS/man/input.rst +++ b/DOCS/man/input.rst @@ -514,21 +514,14 @@ Input Commands that are Possibly Subject to Change ``cycle-values ["!reverse"] "" "" ...`` Cycle through a list of values. Each invocation of the command will set the - given property to the next value in the list. The command maintains an - internal counter which value to pick next, and which is initially 0. It is - reset to 0 once the last value is reached. - - The internal counter is associated using the property name and the value - list. If multiple commands (bound to different keys) use the same name - and value list, they will share the internal counter. + given property to the next value in the list. The command will use the + current value of the property/option, and use it to determine the current + position in the list of values. Once it has found it, it will set the + next value in the list (wrapping around to the first item if needed). The special argument ``!reverse`` can be used to cycle the value list in - reverse. Compared with a command that just lists the value in reverse, this - command will actually share the internal counter with the forward-cycling - key binding (as long as the rest of the arguments are the same). - - Note that there is a static limit of (as of this writing) 10 arguments - (this limit could be raised on demand). + reverse. The only advantage is that you don't need to reverse the value + list yourself when adding a second key binding for cycling backwards. ``enable-section "
" [flags]`` Enable all key bindings in the named input section. -- cgit v1.2.3