Browse Source

MoveViewportTool assigned to H key.
MoveViewportTool transient on assigned to Space key.

tomaszkot 3 years ago
parent
commit
9d9aedf8cc

+ 2 - 0
PixiEditor/Models/Controllers/Shortcuts/ShortcutController.cs

@@ -17,6 +17,8 @@ namespace PixiEditor.Models.Controllers.Shortcuts
 
 
         public Shortcut LastShortcut { get; private set; }
         public Shortcut LastShortcut { get; private set; }
 
 
+        public const Key MoveViewportToolTransientChangeKey = Key.Space;
+
         public void KeyPressed(Key key, ModifierKeys modifiers)
         public void KeyPressed(Key key, ModifierKeys modifiers)
         {
         {
             if (!BlockShortcutExecution)
             if (!BlockShortcutExecution)

+ 24 - 4
PixiEditor/ViewModels/SubViewModels/Main/IoViewModel.cs

@@ -24,7 +24,7 @@ namespace PixiEditor.ViewModels.SubViewModels.Main
         private bool restoreToolOnKeyUp = false;
         private bool restoreToolOnKeyUp = false;
 
 
         private MouseInputFilter filter = new();
         private MouseInputFilter filter = new();
-
+    
         public IoViewModel(ViewModelMain owner)
         public IoViewModel(ViewModelMain owner)
             : base(owner)
             : base(owner)
         {
         {
@@ -54,6 +54,9 @@ namespace PixiEditor.ViewModels.SubViewModels.Main
             {
             {
                 Owner.BitmapManager.InputTarget.OnKeyDown(key);
                 Owner.BitmapManager.InputTarget.OnKeyDown(key);
             }
             }
+
+            if (args.Key == ShortcutController.MoveViewportToolTransientChangeKey)
+                ChangeMoveViewportToolState(true);
         }
         }
 
 
         private void ProcessShortcutDown(bool isRepeat, Key key)
         private void ProcessShortcutDown(bool isRepeat, Key key)
@@ -79,6 +82,11 @@ namespace PixiEditor.ViewModels.SubViewModels.Main
 
 
             if (Owner.BitmapManager.ActiveDocument != null)
             if (Owner.BitmapManager.ActiveDocument != null)
                 Owner.BitmapManager.InputTarget.OnKeyUp(key);
                 Owner.BitmapManager.InputTarget.OnKeyUp(key);
+
+            if (args.Key == ShortcutController.MoveViewportToolTransientChangeKey)
+            {
+                ChangeMoveViewportToolState(false);     
+            }
         }
         }
 
 
         private void ProcessShortcutUp(Key key)
         private void ProcessShortcutUp(Key key)
@@ -107,7 +115,20 @@ namespace PixiEditor.ViewModels.SubViewModels.Main
 
 
         private void OnPreviewMiddleMouseButton(object sender)
         private void OnPreviewMiddleMouseButton(object sender)
         {
         {
-            Owner.ToolsSubViewModel.SetActiveTool<MoveViewportTool>();
+            ChangeMoveViewportToolState(true);
+        }
+
+        void ChangeMoveViewportToolState(bool setOn)
+        {
+            if (setOn)
+            {
+                if(!(Owner.ToolsSubViewModel.ActiveTool is MoveViewportTool))
+                    Owner.ToolsSubViewModel.SetActiveTool<MoveViewportTool>();
+            }
+            else if (Owner.ToolsSubViewModel.LastActionTool != null)
+            {
+                Owner.ToolsSubViewModel.SetActiveTool(Owner.ToolsSubViewModel.LastActionTool);
+            }
         }
         }
 
 
         private void OnMouseMove(object sender, EventArgs args)
         private void OnMouseMove(object sender, EventArgs args)
@@ -128,8 +149,7 @@ namespace PixiEditor.ViewModels.SubViewModels.Main
             }
             }
             else if (button == MouseButton.Middle)
             else if (button == MouseButton.Middle)
             {
             {
-                if (Owner.ToolsSubViewModel.LastActionTool != null)
-                    Owner.ToolsSubViewModel.SetActiveTool(Owner.ToolsSubViewModel.LastActionTool);
+                ChangeMoveViewportToolState(false);
             }
             }
         }
         }
     }
     }

+ 1 - 1
PixiEditor/ViewModels/ViewModelMain.cs

@@ -174,7 +174,7 @@ namespace PixiEditor.ViewModels
                         CreateToolShortcut<MoveTool>(Key.V, "Move selection"),
                         CreateToolShortcut<MoveTool>(Key.V, "Move selection"),
                         CreateToolShortcut<SelectTool>(Key.M, "Select"),
                         CreateToolShortcut<SelectTool>(Key.M, "Select"),
                         CreateToolShortcut<ZoomTool>(Key.Z, "Zoom"),
                         CreateToolShortcut<ZoomTool>(Key.Z, "Zoom"),
-                        CreateToolShortcut<MoveViewportTool>(Key.Space, "Move viewport"),
+                        CreateToolShortcut<MoveViewportTool>(Key.H, "Move viewport"),
                         CreateToolShortcut<MagicWandTool>(Key.W, "Magic wand"),
                         CreateToolShortcut<MagicWandTool>(Key.W, "Magic wand"),
                         new Shortcut(Key.OemPlus, ViewportSubViewModel.ZoomCommand, "Zoom in", 1),
                         new Shortcut(Key.OemPlus, ViewportSubViewModel.ZoomCommand, "Zoom in", 1),
                         new Shortcut(Key.OemMinus, ViewportSubViewModel.ZoomCommand, "Zoom out", -1),
                         new Shortcut(Key.OemMinus, ViewportSubViewModel.ZoomCommand, "Zoom out", -1),