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);
|
||||
e->addOrder(curOrder,false,false);
|
||||
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);
|
||||
break;
|
||||
case GUI_ACTION_ORDERS_DUPLICATE:
|
||||
|
@ -1827,6 +1834,13 @@ void FurnaceGUI::doAction(int what) {
|
|||
if (curOrder>=e->curSubSong->ordersLen) {
|
||||
curOrder=e->curSubSong->ordersLen-1;
|
||||
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);
|
||||
break;
|
||||
|
@ -1835,6 +1849,13 @@ void FurnaceGUI::doAction(int what) {
|
|||
e->moveOrderUp(curOrder);
|
||||
if (settings.cursorFollowsOrder) {
|
||||
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);
|
||||
break;
|
||||
|
@ -1843,6 +1864,13 @@ void FurnaceGUI::doAction(int what) {
|
|||
e->moveOrderDown(curOrder);
|
||||
if (settings.cursorFollowsOrder) {
|
||||
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);
|
||||
break;
|
||||
|
|
|
@ -6401,6 +6401,9 @@ bool FurnaceGUI::loop() {
|
|||
stop();
|
||||
e->clearSubSongs();
|
||||
curOrder=0;
|
||||
cursor.order=0;
|
||||
selStart.order=0;
|
||||
selEnd.order=0;
|
||||
MARK_MODIFIED;
|
||||
ImGui::CloseCurrentPopup();
|
||||
}
|
||||
|
@ -6411,6 +6414,9 @@ bool FurnaceGUI::loop() {
|
|||
});
|
||||
e->setOrder(0);
|
||||
curOrder=0;
|
||||
cursor.order=0;
|
||||
selStart.order=0;
|
||||
selEnd.order=0;
|
||||
MARK_MODIFIED;
|
||||
ImGui::CloseCurrentPopup();
|
||||
}
|
||||
|
@ -6422,6 +6428,9 @@ bool FurnaceGUI::loop() {
|
|||
});
|
||||
e->setOrder(0);
|
||||
curOrder=0;
|
||||
cursor.order=0;
|
||||
selStart.order=0;
|
||||
selEnd.order=0;
|
||||
MARK_MODIFIED;
|
||||
ImGui::CloseCurrentPopup();
|
||||
}
|
||||
|
@ -6530,6 +6539,7 @@ bool FurnaceGUI::loop() {
|
|||
cursor.xCoarse=0;
|
||||
cursor.xFine=0;
|
||||
cursor.y=0;
|
||||
cursor.order=0;
|
||||
selStart=cursor;
|
||||
selEnd=cursor;
|
||||
curOrder=0;
|
||||
|
|
|
@ -43,6 +43,7 @@ void FurnaceGUI::drawSubSongs(bool asChild) {
|
|||
cursor.xCoarse=0;
|
||||
cursor.xFine=0;
|
||||
cursor.y=0;
|
||||
cursor.order=0;
|
||||
selStart=cursor;
|
||||
selEnd=cursor;
|
||||
curOrder=0;
|
||||
|
@ -80,6 +81,7 @@ void FurnaceGUI::drawSubSongs(bool asChild) {
|
|||
cursor.xCoarse=0;
|
||||
cursor.xFine=0;
|
||||
cursor.y=0;
|
||||
cursor.order=0;
|
||||
selStart=cursor;
|
||||
selEnd=cursor;
|
||||
curOrder=0;
|
||||
|
@ -101,6 +103,7 @@ void FurnaceGUI::drawSubSongs(bool asChild) {
|
|||
cursor.xCoarse=0;
|
||||
cursor.xFine=0;
|
||||
cursor.y=0;
|
||||
cursor.order=0;
|
||||
selStart=cursor;
|
||||
selEnd=cursor;
|
||||
curOrder=0;
|
||||
|
|
Loading…
Reference in a new issue