mirror of
https://github.com/tildearrow/furnace.git
synced 2024-11-27 06:53:01 +00:00
GUI: step play fixes
This commit is contained in:
parent
0c7d0bc32b
commit
478c3ecb57
3 changed files with 13 additions and 6 deletions
|
@ -3930,11 +3930,13 @@ bool FurnaceGUI::loop() {
|
||||||
int nextPlayOrder=0;
|
int nextPlayOrder=0;
|
||||||
int nextOldRow=0;
|
int nextOldRow=0;
|
||||||
e->getPlayPos(nextPlayOrder,nextOldRow);
|
e->getPlayPos(nextPlayOrder,nextOldRow);
|
||||||
|
oldRowChanged=false;
|
||||||
playOrder=nextPlayOrder;
|
playOrder=nextPlayOrder;
|
||||||
if (followPattern) {
|
if (followPattern) {
|
||||||
curOrder=playOrder;
|
curOrder=playOrder;
|
||||||
}
|
}
|
||||||
if (e->isPlaying()) {
|
if (e->isPlaying()) {
|
||||||
|
if (oldRow!=nextOldRow) oldRowChanged=true;
|
||||||
oldRow=nextOldRow;
|
oldRow=nextOldRow;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7110,6 +7112,8 @@ FurnaceGUI::FurnaceGUI():
|
||||||
exitDisabledTimer(0),
|
exitDisabledTimer(0),
|
||||||
soloTimeout(0.0f),
|
soloTimeout(0.0f),
|
||||||
exportFadeOut(5.0),
|
exportFadeOut(5.0),
|
||||||
|
newSongFirstFrame(false),
|
||||||
|
oldRowChanged(false),
|
||||||
editControlsOpen(true),
|
editControlsOpen(true),
|
||||||
ordersOpen(true),
|
ordersOpen(true),
|
||||||
insListOpen(true),
|
insListOpen(true),
|
||||||
|
|
|
@ -1816,7 +1816,7 @@ class FurnaceGUI {
|
||||||
|
|
||||||
double exportFadeOut;
|
double exportFadeOut;
|
||||||
|
|
||||||
bool newSongFirstFrame;
|
bool newSongFirstFrame, oldRowChanged;
|
||||||
bool editControlsOpen, ordersOpen, insListOpen, songInfoOpen, patternOpen, insEditOpen;
|
bool editControlsOpen, ordersOpen, insListOpen, songInfoOpen, patternOpen, insEditOpen;
|
||||||
bool waveListOpen, waveEditOpen, sampleListOpen, sampleEditOpen, aboutOpen, settingsOpen;
|
bool waveListOpen, waveEditOpen, sampleListOpen, sampleEditOpen, aboutOpen, settingsOpen;
|
||||||
bool mixerOpen, debugOpen, inspectorOpen, oscOpen, volMeterOpen, statsOpen, compatFlagsOpen;
|
bool mixerOpen, debugOpen, inspectorOpen, oscOpen, volMeterOpen, statsOpen, compatFlagsOpen;
|
||||||
|
|
|
@ -377,11 +377,14 @@ void FurnaceGUI::drawPattern() {
|
||||||
|
|
||||||
bool inhibitMenu=false;
|
bool inhibitMenu=false;
|
||||||
|
|
||||||
if (e->isPlaying() && followPattern && (!e->isStepping() || pendingStepUpdate)) {
|
if (e->isPlaying() && followPattern) {
|
||||||
cursor.y=oldRow;
|
if (oldRowChanged || !e->isStepping()) {
|
||||||
if (selStart.xCoarse==selEnd.xCoarse && selStart.xFine==selEnd.xFine && selStart.y==selEnd.y && !selecting) {
|
if (e->isStepping()) pendingStepUpdate=1;
|
||||||
selStart=cursor;
|
cursor.y=oldRow;
|
||||||
selEnd=cursor;
|
if (selStart.xCoarse==selEnd.xCoarse && selStart.xFine==selEnd.xFine && selStart.y==selEnd.y && !selecting) {
|
||||||
|
selStart=cursor;
|
||||||
|
selEnd=cursor;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
demandX=0;
|
demandX=0;
|
||||||
|
|
Loading…
Reference in a new issue