From e9dbcdafe71d5914e3a022c330e962460da12296 Mon Sep 17 00:00:00 2001 From: STDray Date: Wed, 18 May 2016 18:39:59 +0300 Subject: [PATCH] Add support for context menu keyboard key to uploads listview --- ShareX/Forms/MainForm.Designer.cs | 2 ++ ShareX/Forms/MainForm.cs | 31 +++++++++++++++++++++++++++++++ 2 files changed, 33 insertions(+) diff --git a/ShareX/Forms/MainForm.Designer.cs b/ShareX/Forms/MainForm.Designer.cs index a3847a36a..d76d77463 100644 --- a/ShareX/Forms/MainForm.Designer.cs +++ b/ShareX/Forms/MainForm.Designer.cs @@ -907,6 +907,8 @@ private void InitializeComponent() this.tsmiImagePreview}); this.cmsTaskInfo.Name = "cmsHistory"; resources.ApplyResources(this.cmsTaskInfo, "cmsTaskInfo"); + this.cmsTaskInfo.Closing += new System.Windows.Forms.ToolStripDropDownClosingEventHandler(this.cmsTaskInfo_Closing); + this.cmsTaskInfo.PreviewKeyDown += new System.Windows.Forms.PreviewKeyDownEventHandler(this.cmsTaskInfo_PreviewKeyDown); // // tsmiShowErrors // diff --git a/ShareX/Forms/MainForm.cs b/ShareX/Forms/MainForm.cs index e520bb1c6..445198740 100644 --- a/ShareX/Forms/MainForm.cs +++ b/ShareX/Forms/MainForm.cs @@ -1319,11 +1319,42 @@ private void lvUploads_KeyDown(object sender, KeyEventArgs e) uim.DeleteFiles(); RemoveSelectedItems(); break; + case Keys.Apps: + if (lvUploads.SelectedItems.Count > 0) + { + UpdateContextMenu(); + cmsTaskInfo.Show(lvUploads, lvUploads.SelectedItems[0].Position); + } + break; } e.Handled = e.SuppressKeyPress = true; } + private void cmsTaskInfo_Closing(object sender, ToolStripDropDownClosingEventArgs e) + { + switch (e.CloseReason) + { + default: + return; + case ToolStripDropDownCloseReason.Keyboard: + e.Cancel = !(NativeMethods.GetKeyState((int)Keys.Apps) < 0 || NativeMethods.GetKeyState((int)Keys.F10) < 0 || NativeMethods.GetKeyState((int)Keys.Escape) < 0); + break; + } + } + + private void cmsTaskInfo_PreviewKeyDown(object sender, PreviewKeyDownEventArgs e) + { + switch (e.KeyData) + { + default: + return; + case Keys.Apps: + cmsTaskInfo.Close(); + break; + } + } + private void lvUploads_ItemDrag(object sender, ItemDragEventArgs e) { TaskInfo[] taskInfos = GetCurrentTasks().Select(x => x.Info).Where(x => x != null).ToArray();