|
From: <sag...@us...> - 2010-03-06 12:41:49
|
Revision: 515
http://modplug.svn.sourceforge.net/modplug/?rev=515&view=rev
Author: saga-games
Date: 2010-03-06 12:41:43 +0000 (Sat, 06 Mar 2010)
Log Message:
-----------
[Fix] Pattern Editor: When pasting pattern data that exactly reached the pattern end with overflow paste enabled, a redundant undo point was created.
Modified Paths:
--------------
trunk/OpenMPT/mptrack/Modedit.cpp
Modified: trunk/OpenMPT/mptrack/Modedit.cpp
===================================================================
--- trunk/OpenMPT/mptrack/Modedit.cpp 2010-03-05 19:41:15 UTC (rev 514)
+++ trunk/OpenMPT/mptrack/Modedit.cpp 2010-03-06 12:41:43 UTC (rev 515)
@@ -1204,6 +1204,7 @@
UINT ncol = (dwBeginSel & 0xFFFF) >> 3;
UINT col;
bool bS3MCommands = false, bOk = false;
+ bool bPrepareUndo = true;
MODTYPE origFormat = MOD_TYPE_IT;
UINT len = 0, startLen;
@@ -1238,7 +1239,6 @@
bS3MCommands = (origFormat & (MOD_TYPE_IT|MOD_TYPE_MPT|MOD_TYPE_S3M)) != 0 ? true : false;
bOk = true;
- GetPatternUndo()->PrepareUndo(nPattern, 0, 0, m_SndFile.m_nChannels, m_SndFile.PatternSize[nPattern]);
startLen = len;
startRow = nrow;
@@ -1275,6 +1275,13 @@
if (bSkipPaste == false)
{
+ // Before changing anything in this pattern, we have to create an undo point.
+ if(bPrepareUndo)
+ {
+ GetPatternUndo()->PrepareUndo(nPattern, 0, 0, m_SndFile.m_nChannels, m_SndFile.PatternSize[nPattern]);
+ bPrepareUndo = false;
+ }
+
// ITSyle mixpaste requires that we keep a copy of the thing we are about to paste on
// so that we can refer back to check if there was anything in e.g. the note column before we pasted.
const MODCOMMAND origModCmd = m[col];
@@ -1447,8 +1454,8 @@
nPattern = m_SndFile.Order[oNextOrder];
if(m_SndFile.Patterns.IsValidPat(nPattern) == false) goto PasteDone;
m = m_SndFile.Patterns[nPattern];
- GetPatternUndo()->PrepareUndo(nPattern, 0, 0, m_SndFile.m_nChannels, m_SndFile.PatternSize[nPattern]);
oCurrentOrder = oNextOrder;
+ bPrepareUndo = true;
}
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|