Pārlūkot izejas kodu

Fixed delete points in vectors

Krzysztof Krysiński 4 mēneši atpakaļ
vecāks
revīzija
9949c95719

+ 1 - 1
src/PixiEditor/Data/Localization/Languages/en.json

@@ -1010,5 +1010,5 @@
   "REVERSE_DIFFERENCE_VECTOR_PATH_OP": "Reverse Difference",
   "NO_DOCUMENT_OPEN": "Nothing's here",
   "EMPTY_DOCUMENT_ACTION_BTN": "Start creating",
-  "GRAPH_STATE_UNABLE_TO_CREATE_MEMBER": "Current Node Graph state disallows creation of a new layer next to the selected one."
+  "GRAPH_STATE_UNABLE_TO_CREATE_MEMBER": "Current Node Graph setup disallows creation of a new layer next to the selected one."
 }

+ 8 - 4
src/PixiEditor/Views/Overlays/Overlay.cs

@@ -183,14 +183,18 @@ public abstract class Overlay : Decorator, IOverlay // TODO: Maybe make it not a
     public void KeyPressed(KeyEventArgs args)
     {
         if(SuppressEvents) return;
-        OnKeyPressed(args.Key, args.KeyModifiers, args.KeySymbol);
+        if (args.Handled) return;
+        OnKeyPressed(args);
+        if (args.Handled) return;
         KeyPressedOverlay?.Invoke(args.Key, args.KeyModifiers);
     }
 
     public void KeyReleased(KeyEventArgs keyEventArgs)
     {
         if(SuppressEvents) return;
-        OnKeyReleased(keyEventArgs.Key, keyEventArgs.KeyModifiers);
+        if (keyEventArgs.Handled) return;
+        OnKeyReleased(keyEventArgs);
+        if (keyEventArgs.Handled) return;
         KeyReleasedOverlay?.Invoke(keyEventArgs.Key, keyEventArgs.KeyModifiers);
     }
 
@@ -314,11 +318,11 @@ public abstract class Overlay : Decorator, IOverlay // TODO: Maybe make it not a
     {
     }
     
-    protected virtual void OnKeyPressed(Key key, KeyModifiers keyModifiers, string? keySymbol)
+    protected virtual void OnKeyPressed(KeyEventArgs args)
     {
     }
     
-    protected virtual void OnKeyReleased(Key key, KeyModifiers keyModifiers)
+    protected virtual void OnKeyReleased(KeyEventArgs args)
     {
     }
 

+ 3 - 2
src/PixiEditor/Views/Overlays/PathOverlay/VectorPathOverlay.cs

@@ -361,11 +361,12 @@ public class VectorPathOverlay : Overlay
         isDragging = true;
     }
 
-    protected override void OnKeyPressed(Key key, KeyModifiers keyModifiers, string? symbol)
+    protected override void OnKeyPressed(KeyEventArgs args)
     {
-        if (key == Key.Delete)
+        if (args.Key == Key.Delete)
         {
             DeleteSelectedPoints();
+            args.Handled = true;
         }
     }
 

+ 5 - 2
src/PixiEditor/Views/Overlays/TextOverlay/TextOverlay.cs

@@ -443,12 +443,15 @@ internal class TextOverlay : Overlay
         return indexOfClosest;
     }
 
-    protected override void OnKeyPressed(Key key, KeyModifiers keyModifiers, string? keySymbol)
+    protected override void OnKeyPressed(KeyEventArgs args)
     {
         if (!IsEditing) return;
 
         ShortcutController.BlockShortcutExecution(nameof(TextOverlay));
 
+        var key = args.Key;
+        var keyModifiers = args.KeyModifiers;
+
         if (IsUndoRedoShortcut(key, keyModifiers))
         {
             ShortcutController.UnblockShortcutExecution(nameof(TextOverlay));
@@ -461,7 +464,7 @@ internal class TextOverlay : Overlay
             return;
         }
 
-        InsertChar(key, keySymbol);
+        InsertChar(key, args.KeySymbol);
     }
 
     private bool IsUndoRedoShortcut(Key key, KeyModifiers keyModifiers)

+ 1 - 0
src/PixiEditor/Views/Rendering/Scene.cs

@@ -472,6 +472,7 @@ internal class Scene : Zoombox.Zoombox, ICustomHitTest
             foreach (Overlay overlay in AllOverlays)
             {
                 if (!overlay.IsVisible) continue;
+
                 overlay.KeyPressed(e);
             }
         }