Browse Source

Fixed move tool aligning to pixels with vectors

flabbet 8 months ago
parent
commit
ac9a5a60ca

+ 8 - 0
src/PixiEditor/Models/DocumentModels/UpdateableChangeExecutors/TransformSelectedExecutor.cs

@@ -56,6 +56,7 @@ internal class TransformSelectedExecutor : UpdateableChangeExecutor, ITransforma
     private ExecutionState SelectMembers(List<IStructureMemberHandler> members)
     private ExecutionState SelectMembers(List<IStructureMemberHandler> members)
     {
     {
         bool allRaster = true;
         bool allRaster = true;
+        bool anyRaster = false;
         memberCorners = new();
         memberCorners = new();
         foreach (IStructureMemberHandler member in members)
         foreach (IStructureMemberHandler member in members)
         {
         {
@@ -69,6 +70,11 @@ internal class TransformSelectedExecutor : UpdateableChangeExecutor, ITransforma
             {
             {
                 allRaster = false;
                 allRaster = false;
             }
             }
+            
+            if (member is IRasterLayerHandler)
+            {
+                anyRaster = true;
+            }
 
 
             memberCorners.Add(member.Id, targetCorners);
             memberCorners.Add(member.Id, targetCorners);
         }
         }
@@ -111,6 +117,8 @@ internal class TransformSelectedExecutor : UpdateableChangeExecutor, ITransforma
         lastCorners = masterCorners;
         lastCorners = masterCorners;
         document.TransformHandler.ShowTransform(mode, true, masterCorners,
         document.TransformHandler.ShowTransform(mode, true, masterCorners,
             Type == ExecutorType.Regular || tool.KeepOriginalImage);
             Type == ExecutorType.Regular || tool.KeepOriginalImage);
+        
+        document.TransformHandler.CanAlignToPixels = anyRaster;
 
 
         internals!.ActionAccumulator.AddActions(
         internals!.ActionAccumulator.AddActions(
             new TransformSelected_Action(masterCorners, tool.KeepOriginalImage, memberCorners, false,
             new TransformSelected_Action(masterCorners, tool.KeepOriginalImage, memberCorners, false,