Ver Fonte

Merge pull request #1218 from PixiEditor/select-improvements

Fixed selection and quick tool selection cross toolset
Krzysztof Krysiński há 3 semanas atrás
pai
commit
e9ea90f756

+ 11 - 4
src/PixiEditor/Models/DocumentModels/UpdateableChangeExecutors/TransformSelectedExecutor.cs

@@ -61,7 +61,7 @@ internal class TransformSelectedExecutor : UpdateableChangeExecutor, ITransforma
         members = guids.Select(g => document.StructureHelper.Find(g)).ToList();
 
         if (!members.Any())
-            return ExecutionState.Error;
+            return ExecutionState.Success; // Listen for click events only
 
         document.TransformHandler.PassthroughPointerPressed += OnLeftMouseButtonDown;
 
@@ -109,13 +109,13 @@ internal class TransformSelectedExecutor : UpdateableChangeExecutor, ITransforma
             }
             else
             {
-                return ExecutionState.Error;
+                return ExecutionState.Success; // Listen for click events only
             }
         }
 
         if (masterCorners.AABBBounds.Width == 0 || masterCorners.AABBBounds.Height == 0)
         {
-            return ExecutionState.Error;
+            return ExecutionState.Success; // Listen for click events only
         }
 
         DocumentTransformMode mode = allRaster
@@ -198,7 +198,14 @@ internal class TransformSelectedExecutor : UpdateableChangeExecutor, ITransforma
             }
             else
             {
-                document.Operations.AddSoftSelectedMember(topMost.Id);
+                if (document.SoftSelectedStructureMembers.Contains(topMost) || document.SelectedStructureMember.Id == topMost.Id)
+                {
+                    Deselect(smallestSizeDifferenceList);
+                }
+                else
+                {
+                    document.Operations.AddSoftSelectedMember(topMost.Id);
+                }
             }
         }
         else if (isHoldingShift)

+ 1 - 1
src/PixiEditor/ViewModels/SubViewModels/ToolsViewModel.cs

@@ -457,7 +457,7 @@ internal class ToolsViewModel : SubViewModel<ViewModelMain>, IToolsHandler
         return ActiveToolSet.Tools.Any(tool =>
         {
             var toolAttr = tool.GetType().GetCustomAttribute<Command.ToolAttribute>();
-            return toolAttr is not null && toolAttr.CommonToolType == attr.CommonToolType;
+            return toolAttr?.CommonToolType != null && toolAttr.CommonToolType == attr.CommonToolType;
         });
     }