From 75dca2f1144e5db78d5d8b53d49791ab130f02f9 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 29 Jun 2025 04:37:52 -0500 Subject: [PATCH] GUI: new pattern cursor logic, part 5 fix more bugs --- src/gui/cursor.cpp | 4 +++- src/gui/pattern.cpp | 4 ++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/gui/cursor.cpp b/src/gui/cursor.cpp index 9ba73a647..d60667f7b 100644 --- a/src/gui/cursor.cpp +++ b/src/gui/cursor.cpp @@ -247,7 +247,9 @@ void FurnaceGUI::finishSelection() { // change order if necessary if (curOrder!=cursor.order) { - curOrder=cursor.order; + if (!e->isPlaying() || !followPattern) { + setOrder(cursor.order); + } updateScroll(cursor.y); } diff --git a/src/gui/pattern.cpp b/src/gui/pattern.cpp index 3a7141a68..3faac3b5b 100644 --- a/src/gui/pattern.cpp +++ b/src/gui/pattern.cpp @@ -539,10 +539,10 @@ void FurnaceGUI::drawPattern() { // wrap around and go to previous/next pattern if we're about to go beyond the view if (newScroll<0.0f && curOrder>0) { ImGui::SetScrollY(ImGui::GetScrollMaxY()+newScroll); - curOrder--; + if (!e->isPlaying() || !followPattern) setOrder(curOrder-1); } else if (newScroll>ImGui::GetScrollMaxY() && curOrder<(e->curSubSong->ordersLen-1)) { ImGui::SetScrollY(newScroll-ImGui::GetScrollMaxY()); - curOrder++; + if (!e->isPlaying() || !followPattern) setOrder(curOrder+1); } else { ImGui::SetScrollY(newScroll); }