Browse Source

Fixed undoing to old corners

flabbet 10 months ago
parent
commit
3c04201814

+ 1 - 1
src/PixiEditor/ViewModels/Document/TransformOverlays/DocumentTransformViewModel.cs

@@ -203,8 +203,8 @@ internal class DocumentTransformViewModel : ObservableObject, ITransformHandler
         TransformActive = true;
         TransformActive = true;
         ShowTransformControls = showApplyButton;
         ShowTransformControls = showApplyButton;
 
 
-        undoStack.AddState((Corners, InternalState), TransformOverlayStateType.Initial);
         RequestCornersExecutor?.Execute(this, initPos);
         RequestCornersExecutor?.Execute(this, initPos);
+        undoStack.AddState((Corners, InternalState), TransformOverlayStateType.Initial);
     }
     }
 
 
     public void KeyModifiersInlet(bool isShiftDown, bool isCtrlDown, bool isAltDown)
     public void KeyModifiersInlet(bool isShiftDown, bool isCtrlDown, bool isAltDown)

+ 2 - 2
src/PixiEditor/ViewModels/SubViewModels/UndoViewModel.cs

@@ -35,7 +35,7 @@ internal class UndoViewModel : SubViewModel<ViewModelMain>
     public void Undo()
     public void Undo()
     {
     {
         var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
         var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
-        if (doc is null || (!doc.BlockingUpdateableChangeActive && !doc.HasSavedUndo))
+        if (doc is null || (!doc.IsChangeFeatureActive<IMidChangeUndoableExecutor>() && !doc.HasSavedUndo))
             return;
             return;
         doc.Operations.Undo();
         doc.Operations.Undo();
     }
     }
@@ -51,7 +51,7 @@ internal class UndoViewModel : SubViewModel<ViewModelMain>
         var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
         var doc = Owner.DocumentManagerSubViewModel.ActiveDocument;
         if (doc is null)
         if (doc is null)
             return false;
             return false;
-        return doc.BlockingUpdateableChangeActive || doc.HasSavedUndo;
+        return doc.IsChangeFeatureActive<IMidChangeUndoableExecutor>() || doc.HasSavedUndo;
     }
     }
 
 
     /// <summary>
     /// <summary>

+ 1 - 1
src/PixiEditor/ViewModels/Tools/Tools/VectorEllipseToolViewModel.cs

@@ -47,7 +47,7 @@ internal class VectorEllipseToolViewModel : ShapeTool, IVectorEllipseToolHandler
             vectorLayer.GetShapeData(document.AnimationDataViewModel.ActiveFrameTime) is IReadOnlyEllipseData)
             vectorLayer.GetShapeData(document.AnimationDataViewModel.ActiveFrameTime) is IReadOnlyEllipseData)
         {
         {
             ShapeCorners corners = vectorLayer.TransformationCorners;
             ShapeCorners corners = vectorLayer.TransformationCorners;
-            ViewModelMain.Current?.DocumentManagerSubViewModel.ActiveDocument.TransformViewModel.ShowTransform(
+            document.TransformViewModel.ShowTransform(
                 DocumentTransformMode.Scale_Rotate_Shear_NoPerspective, false, corners, false);
                 DocumentTransformMode.Scale_Rotate_Shear_NoPerspective, false, corners, false);
         }
         }