소스 검색

Fixed ghost layer and path overlay issues

Krzysztof Krysiński 3 달 전
부모
커밋
582a55ebfd
2개의 변경된 파일11개의 추가작업 그리고 1개의 파일을 삭제
  1. 1 1
      src/PixiEditor/Models/DocumentModels/DocumentUpdater.cs
  2. 10 0
      src/PixiEditor/Views/Overlays/PathOverlay/VectorPathOverlay.cs

+ 1 - 1
src/PixiEditor/Models/DocumentModels/DocumentUpdater.cs

@@ -454,7 +454,7 @@ internal class DocumentUpdater
 
             if (closestMember == null)
             {
-                closestMember = doc.NodeGraphHandler.StructureTree.Members.FirstOrDefault();
+                closestMember = doc.NodeGraphHandler.StructureTree.Members.FirstOrDefault(x => x.Id != info.Id);
             }
 
             if (closestMember != null)

+ 10 - 0
src/PixiEditor/Views/Overlays/PathOverlay/VectorPathOverlay.cs

@@ -499,6 +499,7 @@ public class VectorPathOverlay : Overlay
 
     private void SelectAnchor(AnchorHandle handle, bool append = false)
     {
+        lastSelectedIndices.Clear();
         if (append)
         {
             handle.IsSelected = !handle.IsSelected;
@@ -888,6 +889,15 @@ public class VectorPathOverlay : Overlay
         }
 
         anchorHandles.Clear();
+        foreach (var handle in controlPointHandles)
+        {
+            handle.OnPress -= OnControlPointPress;
+            handle.OnDrag -= OnControlPointDrag;
+            handle.OnRelease -= OnHandleRelease;
+            Handles.Remove(handle);
+        }
+
+        controlPointHandles.Clear();
     }
 
     private VecD TryFindAnySnap(VecD delta, VectorPath path, out string? axisX, out string? axisY, out VecD? snapPoint)