GUI: new pattern cursor logic, part 16
fix a couple order change-related problems
This commit is contained in:
parent
5928e57203
commit
853111b99d
|
@ -1793,6 +1793,13 @@ void FurnaceGUI::doAction(int what) {
|
||||||
prepareUndo(GUI_UNDO_CHANGE_ORDER);
|
prepareUndo(GUI_UNDO_CHANGE_ORDER);
|
||||||
e->addOrder(curOrder,false,false);
|
e->addOrder(curOrder,false,false);
|
||||||
curOrder=e->getOrder();
|
curOrder=e->getOrder();
|
||||||
|
if (selStart.order==cursor.order) {
|
||||||
|
selStart.order=curOrder;
|
||||||
|
}
|
||||||
|
if (selEnd.order==cursor.order) {
|
||||||
|
selEnd.order=curOrder;
|
||||||
|
}
|
||||||
|
cursor.order=curOrder;
|
||||||
makeUndo(GUI_UNDO_CHANGE_ORDER);
|
makeUndo(GUI_UNDO_CHANGE_ORDER);
|
||||||
break;
|
break;
|
||||||
case GUI_ACTION_ORDERS_DUPLICATE:
|
case GUI_ACTION_ORDERS_DUPLICATE:
|
||||||
|
@ -1827,6 +1834,13 @@ void FurnaceGUI::doAction(int what) {
|
||||||
if (curOrder>=e->curSubSong->ordersLen) {
|
if (curOrder>=e->curSubSong->ordersLen) {
|
||||||
curOrder=e->curSubSong->ordersLen-1;
|
curOrder=e->curSubSong->ordersLen-1;
|
||||||
e->setOrder(curOrder);
|
e->setOrder(curOrder);
|
||||||
|
if (selStart.order==cursor.order) {
|
||||||
|
selStart.order=curOrder;
|
||||||
|
}
|
||||||
|
if (selEnd.order==cursor.order) {
|
||||||
|
selEnd.order=curOrder;
|
||||||
|
}
|
||||||
|
cursor.order=curOrder;
|
||||||
}
|
}
|
||||||
makeUndo(GUI_UNDO_CHANGE_ORDER);
|
makeUndo(GUI_UNDO_CHANGE_ORDER);
|
||||||
break;
|
break;
|
||||||
|
@ -1835,6 +1849,13 @@ void FurnaceGUI::doAction(int what) {
|
||||||
e->moveOrderUp(curOrder);
|
e->moveOrderUp(curOrder);
|
||||||
if (settings.cursorFollowsOrder) {
|
if (settings.cursorFollowsOrder) {
|
||||||
e->setOrder(curOrder);
|
e->setOrder(curOrder);
|
||||||
|
if (selStart.order==cursor.order) {
|
||||||
|
selStart.order=curOrder;
|
||||||
|
}
|
||||||
|
if (selEnd.order==cursor.order) {
|
||||||
|
selEnd.order=curOrder;
|
||||||
|
}
|
||||||
|
cursor.order=curOrder;
|
||||||
}
|
}
|
||||||
makeUndo(GUI_UNDO_CHANGE_ORDER);
|
makeUndo(GUI_UNDO_CHANGE_ORDER);
|
||||||
break;
|
break;
|
||||||
|
@ -1843,6 +1864,13 @@ void FurnaceGUI::doAction(int what) {
|
||||||
e->moveOrderDown(curOrder);
|
e->moveOrderDown(curOrder);
|
||||||
if (settings.cursorFollowsOrder) {
|
if (settings.cursorFollowsOrder) {
|
||||||
e->setOrder(curOrder);
|
e->setOrder(curOrder);
|
||||||
|
if (selStart.order==cursor.order) {
|
||||||
|
selStart.order=curOrder;
|
||||||
|
}
|
||||||
|
if (selEnd.order==cursor.order) {
|
||||||
|
selEnd.order=curOrder;
|
||||||
|
}
|
||||||
|
cursor.order=curOrder;
|
||||||
}
|
}
|
||||||
makeUndo(GUI_UNDO_CHANGE_ORDER);
|
makeUndo(GUI_UNDO_CHANGE_ORDER);
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -6401,6 +6401,9 @@ bool FurnaceGUI::loop() {
|
||||||
stop();
|
stop();
|
||||||
e->clearSubSongs();
|
e->clearSubSongs();
|
||||||
curOrder=0;
|
curOrder=0;
|
||||||
|
cursor.order=0;
|
||||||
|
selStart.order=0;
|
||||||
|
selEnd.order=0;
|
||||||
MARK_MODIFIED;
|
MARK_MODIFIED;
|
||||||
ImGui::CloseCurrentPopup();
|
ImGui::CloseCurrentPopup();
|
||||||
}
|
}
|
||||||
|
@ -6411,6 +6414,9 @@ bool FurnaceGUI::loop() {
|
||||||
});
|
});
|
||||||
e->setOrder(0);
|
e->setOrder(0);
|
||||||
curOrder=0;
|
curOrder=0;
|
||||||
|
cursor.order=0;
|
||||||
|
selStart.order=0;
|
||||||
|
selEnd.order=0;
|
||||||
MARK_MODIFIED;
|
MARK_MODIFIED;
|
||||||
ImGui::CloseCurrentPopup();
|
ImGui::CloseCurrentPopup();
|
||||||
}
|
}
|
||||||
|
@ -6422,6 +6428,9 @@ bool FurnaceGUI::loop() {
|
||||||
});
|
});
|
||||||
e->setOrder(0);
|
e->setOrder(0);
|
||||||
curOrder=0;
|
curOrder=0;
|
||||||
|
cursor.order=0;
|
||||||
|
selStart.order=0;
|
||||||
|
selEnd.order=0;
|
||||||
MARK_MODIFIED;
|
MARK_MODIFIED;
|
||||||
ImGui::CloseCurrentPopup();
|
ImGui::CloseCurrentPopup();
|
||||||
}
|
}
|
||||||
|
@ -6530,6 +6539,7 @@ bool FurnaceGUI::loop() {
|
||||||
cursor.xCoarse=0;
|
cursor.xCoarse=0;
|
||||||
cursor.xFine=0;
|
cursor.xFine=0;
|
||||||
cursor.y=0;
|
cursor.y=0;
|
||||||
|
cursor.order=0;
|
||||||
selStart=cursor;
|
selStart=cursor;
|
||||||
selEnd=cursor;
|
selEnd=cursor;
|
||||||
curOrder=0;
|
curOrder=0;
|
||||||
|
|
|
@ -43,6 +43,7 @@ void FurnaceGUI::drawSubSongs(bool asChild) {
|
||||||
cursor.xCoarse=0;
|
cursor.xCoarse=0;
|
||||||
cursor.xFine=0;
|
cursor.xFine=0;
|
||||||
cursor.y=0;
|
cursor.y=0;
|
||||||
|
cursor.order=0;
|
||||||
selStart=cursor;
|
selStart=cursor;
|
||||||
selEnd=cursor;
|
selEnd=cursor;
|
||||||
curOrder=0;
|
curOrder=0;
|
||||||
|
@ -80,6 +81,7 @@ void FurnaceGUI::drawSubSongs(bool asChild) {
|
||||||
cursor.xCoarse=0;
|
cursor.xCoarse=0;
|
||||||
cursor.xFine=0;
|
cursor.xFine=0;
|
||||||
cursor.y=0;
|
cursor.y=0;
|
||||||
|
cursor.order=0;
|
||||||
selStart=cursor;
|
selStart=cursor;
|
||||||
selEnd=cursor;
|
selEnd=cursor;
|
||||||
curOrder=0;
|
curOrder=0;
|
||||||
|
@ -101,6 +103,7 @@ void FurnaceGUI::drawSubSongs(bool asChild) {
|
||||||
cursor.xCoarse=0;
|
cursor.xCoarse=0;
|
||||||
cursor.xFine=0;
|
cursor.xFine=0;
|
||||||
cursor.y=0;
|
cursor.y=0;
|
||||||
|
cursor.order=0;
|
||||||
selStart=cursor;
|
selStart=cursor;
|
||||||
selEnd=cursor;
|
selEnd=cursor;
|
||||||
curOrder=0;
|
curOrder=0;
|
||||||
|
|
Loading…
Reference in a new issue