mirror of
https://github.com/FunKey-Project/RetroFE.git
synced 2026-04-11 06:52:57 +02:00
Allow onHighlight animations to be interrupted by key presses. This should remove the "lag" people have been experiencing when scrolling through the menu.
This commit is contained in:
@@ -208,6 +208,18 @@ bool Page::isIdle()
|
|||||||
return idle;
|
return idle;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool Page::isGraphicsIdle()
|
||||||
|
{
|
||||||
|
bool idle = true;
|
||||||
|
|
||||||
|
for(std::vector<Component *>::iterator it = LayerComponents.begin(); it != LayerComponents.end() && idle; ++it)
|
||||||
|
{
|
||||||
|
idle = (*it)->isIdle();
|
||||||
|
}
|
||||||
|
|
||||||
|
return idle;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
void Page::start()
|
void Page::start()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -74,6 +74,7 @@ public:
|
|||||||
void setScrollOffsetIndex(unsigned int i);
|
void setScrollOffsetIndex(unsigned int i);
|
||||||
unsigned int getScrollOffsetIndex();
|
unsigned int getScrollOffsetIndex();
|
||||||
bool isIdle();
|
bool isIdle();
|
||||||
|
bool isGraphicsIdle();
|
||||||
bool isMenuIdle();
|
bool isMenuIdle();
|
||||||
void setStatusTextComponent(Text *t);
|
void setStatusTextComponent(Text *t);
|
||||||
void update(float dt);
|
void update(float dt);
|
||||||
|
|||||||
@@ -346,7 +346,11 @@ void RetroFE::run()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case RETROFE_HIGHLIGHT_EXIT:
|
case RETROFE_HIGHLIGHT_EXIT:
|
||||||
if (currentPage_->isIdle())
|
if ( processUserInput(currentPage_) == RETROFE_HIGHLIGHT_REQUEST)
|
||||||
|
{
|
||||||
|
state = RETROFE_HIGHLIGHT_REQUEST;
|
||||||
|
}
|
||||||
|
else if (currentPage_->isGraphicsIdle())
|
||||||
{
|
{
|
||||||
currentPage_->onNewItemSelected();
|
currentPage_->onNewItemSelected();
|
||||||
currentPage_->highlightEnter();
|
currentPage_->highlightEnter();
|
||||||
@@ -355,7 +359,11 @@ void RetroFE::run()
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case RETROFE_HIGHLIGHT_ENTER:
|
case RETROFE_HIGHLIGHT_ENTER:
|
||||||
if (currentPage_->isIdle())
|
if ( processUserInput(currentPage_) == RETROFE_HIGHLIGHT_REQUEST)
|
||||||
|
{
|
||||||
|
state = RETROFE_HIGHLIGHT_REQUEST;
|
||||||
|
}
|
||||||
|
else if (currentPage_->isGraphicsIdle())
|
||||||
{
|
{
|
||||||
state = RETROFE_IDLE;
|
state = RETROFE_IDLE;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user