diff --git a/src/views/SystemView.cpp b/src/views/SystemView.cpp index 67e3caa30..0064ac382 100644 --- a/src/views/SystemView.cpp +++ b/src/views/SystemView.cpp @@ -153,6 +153,10 @@ void SystemView::onCursorChanged(const CursorState& state) if(abs(target - posMax - startPos) < dist) endPos = target - posMax; // loop around the start (max - 1 -> -1) + // no need to animate, we're not going anywhere (probably mEntries.size() == 1) + if(endPos == mCamOffset && endPos == mExtrasCamOffset) + return; + Animation* anim; if(Settings::getInstance()->getString("TransitionStyle") == "fade") { @@ -248,6 +252,9 @@ void SystemView::render(const Eigen::Affine3f& parentTrans) int logoCount = (int)(mSize.x() / logoSizeX) + 2; // how many logos we need to draw int center = (int)(mCamOffset); + if(mEntries.size() == 1) + logoCount = 1; + // draw background extras Eigen::Affine3f extrasTrans = trans; int extrasCenter = (int)mExtrasCamOffset; diff --git a/src/views/ViewController.cpp b/src/views/ViewController.cpp index 387119ec2..091f47657 100644 --- a/src/views/ViewController.cpp +++ b/src/views/ViewController.cpp @@ -89,6 +89,10 @@ void ViewController::playViewTransition() if(mCurrentView) target = mCurrentView->getPosition(); + // no need to animate, we're not going anywhere (probably goToNextGamelist() or goToPrevGamelist() when there's only 1 system) + if(target == -mCamera.translation()) + return; + if(Settings::getInstance()->getString("TransitionStyle") == "fade") { // fade