From e2b93615fdf4ed59bf80619f453dbf7801f73736 Mon Sep 17 00:00:00 2001 From: Jaex Date: Fri, 19 Aug 2022 20:10:13 +0300 Subject: [PATCH] Open task menu automatically --- ShareX.HelpersLib/Controls/MenuButton.cs | 24 ++++++++++++++----- .../Shapes/ShapeManager.cs | 6 ++--- ShareX/Controls/HotkeySelectionControl.cs | 5 ++++ ShareX/Forms/HotkeySettingsForm.cs | 1 + 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/ShareX.HelpersLib/Controls/MenuButton.cs b/ShareX.HelpersLib/Controls/MenuButton.cs index 9b9f7385b..3cb64b681 100644 --- a/ShareX.HelpersLib/Controls/MenuButton.cs +++ b/ShareX.HelpersLib/Controls/MenuButton.cs @@ -37,24 +37,36 @@ public class MenuButton : Button [DefaultValue(false)] public bool ShowMenuUnderCursor { get; set; } + public void OpenMenu() + { + if (Menu != null) + { + OpenMenu(new Point(0, Height)); + } + } + + public void OpenMenu(Point menuPosition) + { + if (Menu != null) + { + Menu.Show(this, menuPosition); + } + } + protected override void OnMouseDown(MouseEventArgs mevent) { base.OnMouseDown(mevent); if (Menu != null && mevent.Button == MouseButtons.Left) { - Point menuLocation; - if (ShowMenuUnderCursor) { - menuLocation = mevent.Location; + OpenMenu(mevent.Location); } else { - menuLocation = new Point(0, Height - 1); + OpenMenu(); } - - Menu.Show(this, menuLocation); } } diff --git a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs index b34f7763b..7b7f84058 100644 --- a/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs +++ b/ShareX.ScreenCaptureLib/Shapes/ShapeManager.cs @@ -644,6 +644,9 @@ private void form_KeyDown(object sender, KeyEventArgs e) { switch (e.KeyData) { + case Keys.M: + CurrentTool = ShapeType.ToolSelect; + break; case Keys.R: case Keys.NumPad1: CurrentTool = ShapeType.DrawingRectangle; @@ -710,9 +713,6 @@ private void form_KeyDown(object sender, KeyEventArgs e) case Keys.PageDown: MoveCurrentShapeDown(); break; - case Keys.M: - CurrentTool = ShapeType.ToolSelect; - break; } } diff --git a/ShareX/Controls/HotkeySelectionControl.cs b/ShareX/Controls/HotkeySelectionControl.cs index d6b0b4c75..9d66a9105 100644 --- a/ShareX/Controls/HotkeySelectionControl.cs +++ b/ShareX/Controls/HotkeySelectionControl.cs @@ -219,6 +219,11 @@ private void StopEditing() UpdateHotkeyStatus(); } + public void OpenTaskMenu() + { + btnTask.OpenMenu(); + } + private void SelectControl() { Selected = true; diff --git a/ShareX/Forms/HotkeySettingsForm.cs b/ShareX/Forms/HotkeySettingsForm.cs index 90746e9ad..e9092e45d 100644 --- a/ShareX/Forms/HotkeySettingsForm.cs +++ b/ShareX/Forms/HotkeySettingsForm.cs @@ -188,6 +188,7 @@ private void btnAdd_Click(object sender, EventArgs e) UpdateCheckStates(); control.Focus(); Update(); + control.OpenTaskMenu(); } private void btnRemove_Click(object sender, EventArgs e)