Improve capture drop down menu speed

This commit is contained in:
Jaex 2021-08-27 11:31:29 +03:00
parent 3ab41c32a0
commit a6d84d8e76
3 changed files with 44 additions and 40 deletions

View file

@ -302,9 +302,9 @@ private void InitializeComponent()
this.timerTraySingleClick = new System.Windows.Forms.Timer(this.components); this.timerTraySingleClick = new System.Windows.Forms.Timer(this.components);
this.pThumbnailView = new System.Windows.Forms.Panel(); this.pThumbnailView = new System.Windows.Forms.Panel();
this.lblThumbnailViewTip = new System.Windows.Forms.Label(); this.lblThumbnailViewTip = new System.Windows.Forms.Label();
this.ucTaskThumbnailView = new ShareX.TaskThumbnailView();
this.ttMain = new System.Windows.Forms.ToolTip(this.components); this.ttMain = new System.Windows.Forms.ToolTip(this.components);
this.pToolbars = new System.Windows.Forms.Panel(); this.pToolbars = new System.Windows.Forms.Panel();
this.ucTaskThumbnailView = new ShareX.TaskThumbnailView();
((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.scMain)).BeginInit();
this.scMain.Panel1.SuspendLayout(); this.scMain.Panel1.SuspendLayout();
this.scMain.Panel2.SuspendLayout(); this.scMain.Panel2.SuspendLayout();
@ -2391,6 +2391,18 @@ private void InitializeComponent()
this.lblThumbnailViewTip.UseMnemonic = false; this.lblThumbnailViewTip.UseMnemonic = false;
this.lblThumbnailViewTip.MouseUp += new System.Windows.Forms.MouseEventHandler(this.LblThumbnailViewTip_MouseUp); this.lblThumbnailViewTip.MouseUp += new System.Windows.Forms.MouseEventHandler(this.LblThumbnailViewTip_MouseUp);
// //
// ucTaskThumbnailView
//
resources.ApplyResources(this.ucTaskThumbnailView, "ucTaskThumbnailView");
this.ucTaskThumbnailView.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(47)))), ((int)(((byte)(56)))));
this.ucTaskThumbnailView.Name = "ucTaskThumbnailView";
this.ucTaskThumbnailView.ThumbnailSize = new System.Drawing.Size(200, 150);
this.ucTaskThumbnailView.TitleLocation = ShareX.ThumbnailTitleLocation.Top;
this.ucTaskThumbnailView.TitleVisible = true;
this.ucTaskThumbnailView.ContextMenuRequested += new ShareX.TaskThumbnailView.TaskViewMouseEventHandler(this.UcTaskView_ContextMenuRequested);
this.ucTaskThumbnailView.SelectedPanelChanged += new System.EventHandler(this.ucTaskThumbnailView_SelectedPanelChanged);
this.ucTaskThumbnailView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.lvUploads_KeyDown);
//
// ttMain // ttMain
// //
this.ttMain.AutoPopDelay = 5000; this.ttMain.AutoPopDelay = 5000;
@ -2405,18 +2417,6 @@ private void InitializeComponent()
this.pToolbars.Controls.Add(this.tsMain); this.pToolbars.Controls.Add(this.tsMain);
this.pToolbars.Name = "pToolbars"; this.pToolbars.Name = "pToolbars";
// //
// ucTaskThumbnailView
//
resources.ApplyResources(this.ucTaskThumbnailView, "ucTaskThumbnailView");
this.ucTaskThumbnailView.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(42)))), ((int)(((byte)(47)))), ((int)(((byte)(56)))));
this.ucTaskThumbnailView.Name = "ucTaskThumbnailView";
this.ucTaskThumbnailView.ThumbnailSize = new System.Drawing.Size(200, 150);
this.ucTaskThumbnailView.TitleLocation = ShareX.ThumbnailTitleLocation.Top;
this.ucTaskThumbnailView.TitleVisible = true;
this.ucTaskThumbnailView.ContextMenuRequested += new ShareX.TaskThumbnailView.TaskViewMouseEventHandler(this.UcTaskView_ContextMenuRequested);
this.ucTaskThumbnailView.SelectedPanelChanged += new System.EventHandler(this.ucTaskThumbnailView_SelectedPanelChanged);
this.ucTaskThumbnailView.KeyDown += new System.Windows.Forms.KeyEventHandler(this.lvUploads_KeyDown);
//
// MainForm // MainForm
// //
this.AllowDrop = true; this.AllowDrop = true;

View file

@ -1242,21 +1242,18 @@ private void SetScreenshotDelay(decimal delay)
private async Task PrepareCaptureMenuAsync(ToolStripMenuItem tsmiWindow, EventHandler handlerWindow, ToolStripMenuItem tsmiMonitor, EventHandler handlerMonitor) private async Task PrepareCaptureMenuAsync(ToolStripMenuItem tsmiWindow, EventHandler handlerWindow, ToolStripMenuItem tsmiMonitor, EventHandler handlerMonitor)
{ {
tsmiWindow.DropDownItems.Clear(); tsmiWindow.DropDownItems.Clear();
WindowsList windowsList = new WindowsList(); WindowsList windowsList = new WindowsList();
List<WindowInfo> windows = null; List<WindowInfo> windows = await Task.Run(() => windowsList.GetVisibleWindowsList());
await Task.Run(() => if (windows != null && windows.Count > 0)
{ {
windows = windowsList.GetVisibleWindowsList(); ToolStripItem[] items = new ToolStripItem[windows.Count];
});
if (windows != null) for (int i = 0; i < items.Length; i++)
{
foreach (WindowInfo window in windows)
{ {
try try
{ {
WindowInfo window = windows[i];
string title = window.Text.Truncate(50, "..."); string title = window.Text.Truncate(50, "...");
ToolStripMenuItem tsmi = new ToolStripMenuItem(title); ToolStripMenuItem tsmi = new ToolStripMenuItem(title);
tsmi.Tag = window; tsmi.Tag = window;
@ -1270,29 +1267,39 @@ await Task.Run(() =>
} }
} }
tsmiWindow.DropDownItems.Add(tsmi); items[i] = tsmi;
} }
catch (Exception e) catch (Exception e)
{ {
DebugHelper.WriteException(e); DebugHelper.WriteException(e);
} }
} }
}
tsmiMonitor.DropDownItems.Clear(); tsmiWindow.DropDownItems.AddRange(items);
Screen[] screens = Screen.AllScreens;
for (int i = 0; i < screens.Length; i++)
{
Screen screen = screens[i];
string text = string.Format("{0}. {1}x{2}", i + 1, screen.Bounds.Width, screen.Bounds.Height);
ToolStripItem tsi = tsmiMonitor.DropDownItems.Add(text);
tsi.Tag = screen.Bounds;
tsi.Click += handlerMonitor;
} }
tsmiWindow.Invalidate(); tsmiWindow.Invalidate();
tsmiMonitor.DropDownItems.Clear();
Screen[] screens = Screen.AllScreens;
if (screens != null && screens.Length > 0)
{
ToolStripItem[] items = new ToolStripItem[screens.Length];
for (int i = 0; i < items.Length; i++)
{
Screen screen = screens[i];
string text = string.Format("{0}. {1}x{2}", i + 1, screen.Bounds.Width, screen.Bounds.Height);
ToolStripMenuItem tsmi = new ToolStripMenuItem(text);
tsmi.Tag = screen.Bounds;
tsmi.Click += handlerMonitor;
items[i] = tsmi;
}
tsmiMonitor.DropDownItems.AddRange(items);
}
tsmiMonitor.Invalidate(); tsmiMonitor.Invalidate();
} }

View file

@ -292,7 +292,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;scMain.ZOrder" xml:space="preserve"> <data name="&gt;&gt;scMain.ZOrder" xml:space="preserve">
<value>2</value> <value>3</value>
</data> </data>
<metadata name="tsMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="tsMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value> <value>17, 17</value>
@ -2035,7 +2035,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;pThumbnailView.ZOrder" xml:space="preserve"> <data name="&gt;&gt;pThumbnailView.ZOrder" xml:space="preserve">
<value>1</value> <value>2</value>
</data> </data>
<metadata name="ttMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"> <metadata name="ttMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>567, 17</value> <value>567, 17</value>
@ -2065,7 +2065,7 @@
<value>$this</value> <value>$this</value>
</data> </data>
<data name="&gt;&gt;pToolbars.ZOrder" xml:space="preserve"> <data name="&gt;&gt;pToolbars.ZOrder" xml:space="preserve">
<value>3</value> <value>4</value>
</data> </data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value> <value>True</value>
@ -2079,9 +2079,6 @@
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>844, 471</value> <value>844, 471</value>
</data> </data>
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing"> <data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
<value>510, 250</value> <value>510, 250</value>
</data> </data>