Horizontal menus in DreamPlex stuck

Issue #586 resolved
prl created an issue

The horizontal menus in DreamPlex rely on the idiosyncratic implementation of moveUp/moveDown/pageUp/pageDown in Sources.List that were changed in the fixes to bugs #575 & #576.

DreamPlex uses a List/TemplatedMultiContent/Listbox chain with a renderer size of 1,1, to apparently do nothing more than a little modulo arithmetic. If the renderer height is less than the height of a line, the relative move (moveUp/moveDown/pageUp/pageDown) operations used in the fixes to #575 & #576 do nothing, and the menu selection doesn't change when UP/DOWN/LEFT/RIGHT are used to change the selection.

Replication steps

in MENU>Plugins, use GREEN Download plugins to install the plugin Extensions>dreamplex if it's not already installed.

Reboot.

In MENU>Dreamplex, the screen shows a horizontal menu bar. Pressing UP/DOWN/LEFT/RIGHT should rotate the menu items so that he central selected menu item changes. However, UP/DOWN/LEFT/RIGHT do nothing.

EXIT to exit the plugin.

Comments (4)

  1. Peter Urbanec

    Fix Bug #586: Horizontal menus in DreamPlex stuck

    [Sources.List, Converter.StringList]

    Pass through the wrap_around property from Renderer.Listbox.

    This allows wrap_around to be overridden in the renderer from the source and to have its value tested in the chain.

    [Sources.List]

    Allow the enableWrapAround argument to init() to be passed through to the renderer so that it over-rides the renderer default and skin setting.

    If the renderer's height is too small to allow the operations moveUp/moveDown/pageUp/pageDown to operate, detect this and fall back to the old code's (prior to the fix of bugs #575 & #576) method, using the index property passed down to the renderer, and using the previous paging distance guesses of +/-10 lines.

    → <<cset 93f2ebe518f0>>

  2. Peter Urbanec

    Paging fixup for Fix Bug #586: Horizontal menus in DreamPlex stuck

    [Sources.List]

    The previous code wouldn't allow fallback paging to the start or the end of the list if the cursor was within 9 lines of the list start or end.

    → <<cset c409d135a2f8>>

  3. Log in to comment