From f92c09da19ff56e603596dc00d4981bf3fa82b40 Mon Sep 17 00:00:00 2001 From: tildearrow Date: Sun, 20 Jul 2025 05:19:38 -0500 Subject: [PATCH] this solution is incomplete --- src/gui/editing.cpp | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/gui/editing.cpp b/src/gui/editing.cpp index e4bb3eefd..df163d036 100644 --- a/src/gui/editing.cpp +++ b/src/gui/editing.cpp @@ -2017,10 +2017,21 @@ void FurnaceGUI::doAbsorbInstrument() { void FurnaceGUI::doDrag(bool copy) { int len=dragEnd.xCoarse-dragStart.xCoarse+1; + int firstOrder=e->curSubSong->ordersLen; + int lastOrder=0; + + if (dragStart.orderlastOrder) lastOrder=dragStart.order; + if (dragEnd.order>lastOrder) lastOrder=dragEnd.order; + if (selStart.order>lastOrder) lastOrder=selStart.order; + + logV("UR: %d - %d",firstOrder,lastOrder); if (len<1) return; - prepareUndo(GUI_UNDO_PATTERN_DRAG); + prepareUndo(GUI_UNDO_PATTERN_DRAG,UndoRegion(firstOrder,0,0,lastOrder,e->getTotalChannelCount()-1,e->curSubSong->patLen-1)); // copy and clear (if copy is false) String c=doCopy(!copy,false,dragStart,dragEnd);