|
@@ -21,10 +21,9 @@ namespace PixiEditor.Models.Tools
|
|
|
|
|
|
public override void BeforeUse()
|
|
public override void BeforeUse()
|
|
{
|
|
{
|
|
- if (UseDefaultUndoMethod)
|
|
|
|
|
|
+ if (UseDefaultUndoMethod && !RequiresPreviewLayer)
|
|
{
|
|
{
|
|
- Document doc = ViewModels.ViewModelMain.Current.BitmapManager.ActiveDocument;
|
|
|
|
- _change = new StorageBasedChange(doc, new[] { doc.ActiveLayer }, true);
|
|
|
|
|
|
+ InitializeStorageBasedChange();
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -36,12 +35,24 @@ namespace PixiEditor.Models.Tools
|
|
{
|
|
{
|
|
if (!UseDefaultUndoMethod)
|
|
if (!UseDefaultUndoMethod)
|
|
return;
|
|
return;
|
|
|
|
+
|
|
|
|
+ if (RequiresPreviewLayer)
|
|
|
|
+ {
|
|
|
|
+ InitializeStorageBasedChange();
|
|
|
|
+ }
|
|
|
|
+
|
|
var document = ViewModels.ViewModelMain.Current.BitmapManager.ActiveDocument;
|
|
var document = ViewModels.ViewModelMain.Current.BitmapManager.ActiveDocument;
|
|
var args = new object[] { _change.Document };
|
|
var args = new object[] { _change.Document };
|
|
document.UndoManager.AddUndoChange(_change.ToChange(UndoStorageBasedChange, args));
|
|
document.UndoManager.AddUndoChange(_change.ToChange(UndoStorageBasedChange, args));
|
|
_change = null;
|
|
_change = null;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ private void InitializeStorageBasedChange()
|
|
|
|
+ {
|
|
|
|
+ Document doc = ViewModels.ViewModelMain.Current.BitmapManager.ActiveDocument;
|
|
|
|
+ _change = new StorageBasedChange(doc, new[] {doc.ActiveLayer}, true);
|
|
|
|
+ }
|
|
|
|
+
|
|
private void UndoStorageBasedChange(Layer[] layers, UndoLayer[] data, object[] args)
|
|
private void UndoStorageBasedChange(Layer[] layers, UndoLayer[] data, object[] args)
|
|
{
|
|
{
|
|
Document document = (Document)args[0];
|
|
Document document = (Document)args[0];
|