Browse Source

Fixed missing snapping for members

flabbet 8 months ago
parent
commit
efaebe8b6d

+ 6 - 1
src/PixiEditor/Models/DocumentModels/UpdateableChangeExecutors/TransformSelectedExecutor.cs

@@ -22,6 +22,8 @@ internal class TransformSelectedExecutor : UpdateableChangeExecutor, ITransforma
     public override ExecutorType Type { get; }
     public override ExecutorType Type { get; }
 
 
     public override bool BlocksOtherActions => false; 
     public override bool BlocksOtherActions => false; 
+    
+    private List<Guid> selectedMembers = new();
 
 
     public TransformSelectedExecutor(bool toolLinked)
     public TransformSelectedExecutor(bool toolLinked)
     {
     {
@@ -85,6 +87,8 @@ internal class TransformSelectedExecutor : UpdateableChangeExecutor, ITransforma
             document.SnappingHandler.Remove(structureMemberHandler.Id.ToString());
             document.SnappingHandler.Remove(structureMemberHandler.Id.ToString());
         }
         }
         
         
+        selectedMembers = members.Select(m => m.Id).ToList();
+        
         document.TransformHandler.ShowTransform(mode, true, masterCorners, Type == ExecutorType.Regular);
         document.TransformHandler.ShowTransform(mode, true, masterCorners, Type == ExecutorType.Regular);
         internals!.ActionAccumulator.AddActions(
         internals!.ActionAccumulator.AddActions(
             new TransformSelected_Action(masterCorners, tool.KeepOriginalImage, memberCorners, false,
             new TransformSelected_Action(masterCorners, tool.KeepOriginalImage, memberCorners, false,
@@ -100,8 +104,9 @@ internal class TransformSelectedExecutor : UpdateableChangeExecutor, ITransforma
         {
         {
             internals.ActionAccumulator.AddActions(new EndTransformSelected_Action());
             internals.ActionAccumulator.AddActions(new EndTransformSelected_Action());
             document!.TransformHandler.HideTransform();
             document!.TransformHandler.HideTransform();
-            AddSnappingForMembers(memberGuids);
+            AddSnappingForMembers(selectedMembers);
             
             
+            selectedMembers.Clear();
             memberCorners.Clear();
             memberCorners.Clear();
             isInProgress = false;
             isInProgress = false;
         }
         }

+ 1 - 0
src/PixiEditor/ViewModels/Tools/Tools/MoveToolViewModel.cs

@@ -93,6 +93,7 @@ internal class MoveToolViewModel : ToolViewModel, IMoveToolHandler
         if (!transient)
         if (!transient)
         {
         {
             vm.DocumentManagerSubViewModel.ActiveDocument?.Operations.TryStopToolLinkedExecutor();
             vm.DocumentManagerSubViewModel.ActiveDocument?.Operations.TryStopToolLinkedExecutor();
+            TransformingSelectedArea = false;
         }
         }
     }
     }