Fix bug when pressing back when scrolling (can cause crash or select the wrong item)

This commit is contained in:
emb 2015-03-10 21:39:35 -05:00
parent 2def9989ee
commit 4a240eef19
3 changed files with 10 additions and 4 deletions

View File

@ -162,7 +162,7 @@ bool Page::AddComponent(Component *c)
return retVal;
}
bool Page::IsIdle()
bool Page::IsMenuIdle()
{
bool idle = true;
@ -176,7 +176,13 @@ bool Page::IsIdle()
break;
}
}
return idle;
}
bool Page::IsIdle()
{
bool idle = IsMenuIdle();
for(unsigned int i = 0; i < NUM_LAYERS && idle; ++i)
{
for(std::vector<Component *>::iterator it = LayerComponents[i].begin(); it != LayerComponents[i].end() && idle; ++it)

View File

@ -61,9 +61,9 @@ public:
bool IsHorizontalScroll();
unsigned int GetMenuDepth();
Item *GetSelectedItem();
Item *GetPendingSelectedItem();
void RemoveSelectedItem();
bool IsIdle();
bool IsMenuIdle();
bool IsHidden();
void SetStatusTextComponent(Text *t);
void Update(float dt);

View File

@ -429,7 +429,7 @@ RetroFE::RETROFE_STATE RetroFE::ProcessUserInput(Page *page)
{
//todo: add admin mode support
}
if (keys[Input.GetScancode(UserInput::KeyCodeSelect)])
if (keys[Input.GetScancode(UserInput::KeyCodeSelect)] && page->IsMenuIdle())
{
NextPageItem = page->GetSelectedItem();
@ -453,7 +453,7 @@ RetroFE::RETROFE_STATE RetroFE::ProcessUserInput(Page *page)
}
}
if (keys[Input.GetScancode(UserInput::KeyCodeBack)])
if (keys[Input.GetScancode(UserInput::KeyCodeBack)] && page->IsMenuIdle())
{
if(Back(exit) || exit)
{