diff --git a/src/gui/gui.cpp b/src/gui/gui.cpp index 55911a3c..bae782ff 100644 --- a/src/gui/gui.cpp +++ b/src/gui/gui.cpp @@ -1016,11 +1016,17 @@ void FurnaceGUI::valueInput(int num, bool direct, int target) { if (!settings.effectCursorDir) { editAdvance(); } else { - if (cursor.xFine&1) { - cursor.xFine++; + if (settings.effectCursorDir==2) { + if (++cursor.xFine>=(3+(e->song.pat[cursor.xCoarse].effectRows*2))) { + cursor.xFine=3; + } } else { - editAdvance(); - cursor.xFine--; + if (cursor.xFine&1) { + cursor.xFine++; + } else { + editAdvance(); + cursor.xFine--; + } } } } diff --git a/src/gui/settings.cpp b/src/gui/settings.cpp index 30fe2141..1cbd6a06 100644 --- a/src/gui/settings.cpp +++ b/src/gui/settings.cpp @@ -250,11 +250,6 @@ void FurnaceGUI::drawSettings() { settings.stepOnInsert=stepOnInsertB; } - bool effectCursorDirB=settings.effectCursorDir; - if (ImGui::Checkbox("Move cursor to effect value on effect input",&effectCursorDirB)) { - settings.effectCursorDir=effectCursorDirB; - } - bool cursorPastePosB=settings.cursorPastePos; if (ImGui::Checkbox("Move cursor to end of clipboard content when pasting",&cursorPastePosB)) { settings.cursorPastePos=cursorPastePosB; @@ -315,6 +310,17 @@ void FurnaceGUI::drawSettings() { settings.scrollStep=1; } + ImGui::Text("Effect input cursor behavior:"); + if (ImGui::RadioButton("Move down##eicb0",settings.effectCursorDir==0)) { + settings.effectCursorDir=0; + } + if (ImGui::RadioButton("Move to effect value (otherwise move down)##eicb1",settings.effectCursorDir==1)) { + settings.effectCursorDir=1; + } + if (ImGui::RadioButton("Move to effect value/next effect and wrap around##eicb2",settings.effectCursorDir==2)) { + settings.effectCursorDir=2; + } + ImGui::EndTabItem(); } if (ImGui::BeginTabItem("Audio/MIDI")) { @@ -1503,7 +1509,7 @@ void FurnaceGUI::syncSettings() { clampSetting(settings.loadJapanese,0,1); clampSetting(settings.fmLayout,0,3); clampSetting(settings.susPosition,0,1); - clampSetting(settings.effectCursorDir,0,1); + clampSetting(settings.effectCursorDir,0,2); clampSetting(settings.cursorPastePos,0,1); clampSetting(settings.titleBarInfo,0,3); clampSetting(settings.titleBarSys,0,1);