mirror of
https://github.com/tuxbox-fork-migrations/recycled-ni-neutrino.git
synced 2025-08-31 17:31:11 +02:00
CMenuWidget: fix "left" key for menuchoosers where
the "decrement menu function" got lost by the last "simplify code and
add missing break" commit. The implicit fallthrough actually was used to
execute the "left" function.
Reorganize the code so that it works even without the implicit
fallthrough.
Origin commit data
------------------
Commit: ab3434e278
Author: Stefan Seyfried <seife@tuxbox-git.slipkontur.de>
Date: 2017-09-29 (Fri, 29 Sep 2017)
This commit is contained in:
committed by
Jacek Jendrzej
parent
20451a9be6
commit
c4e6ecdf63
@@ -928,46 +928,39 @@ int CMenuWidget::exec(CMenuTarget* parent, const std::string &)
|
||||
break;
|
||||
}
|
||||
case (CRCInput::RC_left):
|
||||
{
|
||||
if(hasItem() && selected > -1 && (int)items.size() > selected) {
|
||||
CMenuItem* itemX = items[selected];
|
||||
if (!itemX->isMenueOptionChooser()) {
|
||||
if (g_settings.menu_left_exit)
|
||||
msg = CRCInput::RC_timeout;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
case (CRCInput::RC_right):
|
||||
case (CRCInput::RC_ok):
|
||||
{
|
||||
if(hasItem() && selected > -1 && (int)items.size() > selected) {
|
||||
//exec this item...
|
||||
CMenuItem* item = items[selected];
|
||||
if (!item->isSelectable())
|
||||
break;
|
||||
item->msg = msg;
|
||||
fader.StopFade();
|
||||
int rv = item->exec( this );
|
||||
switch ( rv ) {
|
||||
case menu_return::RETURN_EXIT_ALL:
|
||||
retval = menu_return::RETURN_EXIT_ALL;
|
||||
/* fall through */
|
||||
case menu_return::RETURN_EXIT:
|
||||
msg = CRCInput::RC_timeout;
|
||||
break;
|
||||
case menu_return::RETURN_REPAINT:
|
||||
case menu_return::RETURN_EXIT_REPAINT:
|
||||
if (fade && washidden)
|
||||
fader.StartFadeIn();
|
||||
checkHints();
|
||||
pos = selected;
|
||||
paint();
|
||||
break;
|
||||
}
|
||||
} else
|
||||
if (hasItem() && selected > -1 && (int)items.size() > selected) {
|
||||
//exec this item...
|
||||
CMenuItem* item = items[selected];
|
||||
if (msg == CRCInput::RC_left && g_settings.menu_left_exit &&
|
||||
!item->isMenueOptionChooser()) {
|
||||
msg = CRCInput::RC_timeout;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if (!item->isSelectable())
|
||||
break;
|
||||
item->msg = msg;
|
||||
fader.StopFade();
|
||||
int rv = item->exec( this );
|
||||
switch ( rv ) {
|
||||
case menu_return::RETURN_EXIT_ALL:
|
||||
retval = menu_return::RETURN_EXIT_ALL;
|
||||
/* fall through */
|
||||
case menu_return::RETURN_EXIT:
|
||||
msg = CRCInput::RC_timeout;
|
||||
break;
|
||||
case menu_return::RETURN_REPAINT:
|
||||
case menu_return::RETURN_EXIT_REPAINT:
|
||||
if (fade && washidden)
|
||||
fader.StartFadeIn();
|
||||
checkHints();
|
||||
pos = selected;
|
||||
paint();
|
||||
break;
|
||||
}
|
||||
} else
|
||||
msg = CRCInput::RC_timeout;
|
||||
break;
|
||||
|
||||
case (CRCInput::RC_home):
|
||||
|
Reference in New Issue
Block a user