The CustomBrowse plugin appears to be cloning the INPUT.Choice mode for
use as the mode PLUGIN.CustomBrowse.Choice (and making some
modifications).  What I believe the issue to be is that Erland appears
to be chaining together PLUGIN.CustomBrowse.Choice modes in the
modeStack, but INPUT.Choice was not designed to be used in that way, the
intent was to have intermediate modes.

Intended:
Home -> INPUT.List -> xmlbrowser -> INPUT.Choice -> xmlbrowser ->
INPUT.Choice -> xmlbrowser -> INPUT.Choice

In CustomBrowse:
Home -> INPUT.List -> PLUGIN.CustomBrowse.Browse ->
PLUGIN.CustomBrowse.Choice -> PLUGIN.CustomBrowse.Choice ->
PLUGIN.CustomBrowse.Choice

The passback function in INPUT.Choice was written such that it only
ascends a single level, to the modeParent of the current mode, so when
you chain that mode or a derivative of that mode together you get an
infinite loop, as the passback function keeps calling itself in the mode
before the current mode.

As long as there are no useMode parameters in the menu tree, it seems
like an acceptable shortcut for CustomBrowse would be to replace the
passback function cloned from INPUT.Choice with one that resends the
button press to the PLUGIN.CustomBrowse.Browse mode instead of
parentMode.

Alternately, the search, stop, and pause mappings in the plugin
(including the loop in initPlugin as well as the %choiceMapping hash)
could be removed to allow the default mapping of pause.single to pause,
pause.hold to stop, stop to stop, and search to globalsearch.  Since
those functions are not implemented in the CustomBrowse plugin, the
functions from Common would be used, and should result in the
user-expected action occurring.


------------------------------------------------------------------------
Grotus's Profile: http://forums.slimdevices.com/member.php?userid=887
View this thread: http://forums.slimdevices.com/showthread.php?t=30908

_______________________________________________
beta mailing list
[email protected]
http://lists.slimdevices.com/mailman/listinfo/beta

Reply via email to