Browse Source

HideContextMenu = RightClickMode != ContextMenu && (RightClickMode == Erase && tool.IsErasable || RightClickMode == SecondaryColor && tool.UsesColor)

CPKreuz 2 years ago
parent
commit
b2481deaec

+ 0 - 5
src/PixiEditor/ViewModels/SubViewModels/Tools/ToolViewModel.cs

@@ -39,11 +39,6 @@ internal abstract class ToolViewModel : NotifyableObject
     /// </summary>
     public virtual bool IsErasable => false;
 
-    /// <summary>
-    /// Determines if PixiEditor should show the context menu on the canvas when right click mode is set to secondary color or erase
-    /// </summary>
-    public virtual bool AlwaysShowContextMenu => false;
-
     /// <summary>
     /// The mouse button that is being used with the tool
     /// </summary>

+ 0 - 2
src/PixiEditor/ViewModels/SubViewModels/Tools/Tools/LassoToolViewModel.cs

@@ -19,8 +19,6 @@ internal class LassoToolViewModel : ToolViewModel
         ActionDisplay = defaultActionDisplay;
     }
 
-    public override bool AlwaysShowContextMenu => true;
-
     private SelectionMode modifierKeySelectionMode = SelectionMode.New;
     public SelectionMode ResultingSelectionMode => modifierKeySelectionMode != SelectionMode.New ? modifierKeySelectionMode : SelectMode;
 

+ 0 - 2
src/PixiEditor/ViewModels/SubViewModels/Tools/Tools/MagicWandToolViewModel.cs

@@ -15,8 +15,6 @@ internal class MagicWandToolViewModel : ToolViewModel
     public override LocalizedString Tooltip => new LocalizedString("MAGIC_WAND_TOOL_TOOLTIP", Shortcut);
 
     public override string ToolNameLocalizationKey => "MAGIC_WAND_TOOL";
-    public override bool AlwaysShowContextMenu => true;
-
     public override BrushShape BrushShape => BrushShape.Pixel;
 
     [Settings.Enum("MODE_LABEL")]

+ 0 - 1
src/PixiEditor/ViewModels/SubViewModels/Tools/Tools/SelectToolViewModel.cs

@@ -15,7 +15,6 @@ internal class SelectToolViewModel : ToolViewModel
 {
     private string defaultActionDisplay = "SELECT_TOOL_ACTION_DISPLAY_DEFAULT";
     public override string ToolNameLocalizationKey => "SELECT_TOOL_NAME";
-    public override bool AlwaysShowContextMenu => true;
 
     public SelectToolViewModel()
     {

+ 6 - 2
src/PixiEditor/Views/MainWindow.xaml.cs

@@ -252,8 +252,12 @@ internal partial class MainWindow : Window
 
     private void Viewport_OnContextMenuOpening(object sender, ContextMenuEventArgs e)
     {
-        if (DataContext.ToolsSubViewModel.RightClickMode != RightClickMode.ContextMenu &&
-            !DataContext.ToolsSubViewModel.ActiveTool.AlwaysShowContextMenu)
+        var tools = DataContext.ToolsSubViewModel;
+        var useContextMenu = DataContext.ToolsSubViewModel.RightClickMode == RightClickMode.ContextMenu;
+        var usesErase = tools.RightClickMode == RightClickMode.Erase && tools.ActiveTool.IsErasable;
+        var usesSecondaryColor = tools.RightClickMode == RightClickMode.SecondaryColor && tools.ActiveTool.UsesColor;
+
+        if (!useContextMenu && (usesErase || usesSecondaryColor))
         {
             e.Handled = true;
         }