mirror of
https://github.com/ShareX/ShareX.git
synced 2024-10-01 09:47:22 +13:00
Lock image interactions, fix dispose
This commit is contained in:
parent
370c758b12
commit
83c730b2d6
4 changed files with 45 additions and 24 deletions
|
@ -103,11 +103,11 @@ protected override void Dispose(bool disposing)
|
|||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
|
||||
if (screenshot != null)
|
||||
{
|
||||
screenshot.Dispose();
|
||||
}
|
||||
if (screenshot != null)
|
||||
{
|
||||
screenshot.Dispose();
|
||||
}
|
||||
|
||||
base.Dispose(disposing);
|
||||
|
|
|
@ -82,6 +82,7 @@ private void GetWebpageBitmap()
|
|||
{
|
||||
GetImage(webBrowser.ActiveXInstance, bmp, Color.White);
|
||||
OnCaptureCompleted(bmp);
|
||||
return;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
|
@ -91,10 +92,10 @@ private void GetWebpageBitmap()
|
|||
{
|
||||
bmp.Dispose();
|
||||
}
|
||||
|
||||
OnCaptureCompleted(null);
|
||||
}
|
||||
}
|
||||
|
||||
OnCaptureCompleted(null);
|
||||
}
|
||||
|
||||
private static void GetImage(object obj, Image destination, Color backgroundColor)
|
||||
|
|
8
ShareX/Forms/WebpageCaptureForm.Designer.cs
generated
8
ShareX/Forms/WebpageCaptureForm.Designer.cs
generated
|
@ -16,11 +16,11 @@ protected override void Dispose(bool disposing)
|
|||
if (disposing && (components != null))
|
||||
{
|
||||
components.Dispose();
|
||||
}
|
||||
|
||||
if (webpageCapture != null)
|
||||
{
|
||||
webpageCapture.Dispose();
|
||||
}
|
||||
if (webpageCapture != null)
|
||||
{
|
||||
webpageCapture.Dispose();
|
||||
}
|
||||
|
||||
base.Dispose(disposing);
|
||||
|
|
|
@ -89,17 +89,6 @@ private void CleanPictureBox()
|
|||
}
|
||||
}
|
||||
|
||||
private void webpageCapture_CaptureCompleted(Bitmap bmp)
|
||||
{
|
||||
if (!IsDisposed)
|
||||
{
|
||||
CleanPictureBox();
|
||||
pbResult.Image = bmp;
|
||||
btnCapture.Enabled = txtURL.Enabled = btnUpload.Enabled = btnCopy.Enabled = true;
|
||||
IsBusy = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void txtURL_TextChanged(object sender, EventArgs e)
|
||||
{
|
||||
btnCapture.Enabled = txtURL.TextLength > 0;
|
||||
|
@ -124,17 +113,42 @@ private void btnCapture_Click(object sender, EventArgs e)
|
|||
{
|
||||
IsBusy = true;
|
||||
btnCapture.Enabled = txtURL.Enabled = btnUpload.Enabled = btnCopy.Enabled = false;
|
||||
CleanPictureBox();
|
||||
|
||||
lock (this)
|
||||
{
|
||||
CleanPictureBox();
|
||||
}
|
||||
|
||||
webpageCapture.CaptureDelay = (int)nudCaptureDelay.Value * 1000;
|
||||
webpageCapture.CapturePage(txtURL.Text, new Size((int)nudWebpageWidth.Value, (int)nudWebpageWidth.Value));
|
||||
}
|
||||
|
||||
private void webpageCapture_CaptureCompleted(Bitmap bmp)
|
||||
{
|
||||
if (!IsDisposed)
|
||||
{
|
||||
lock (this)
|
||||
{
|
||||
CleanPictureBox();
|
||||
pbResult.Image = bmp;
|
||||
}
|
||||
|
||||
btnCapture.Enabled = txtURL.Enabled = btnUpload.Enabled = btnCopy.Enabled = true;
|
||||
IsBusy = false;
|
||||
}
|
||||
}
|
||||
|
||||
private void btnUpload_Click(object sender, EventArgs e)
|
||||
{
|
||||
if (pbResult.Image != null)
|
||||
{
|
||||
Image img = (Image)pbResult.Image.Clone();
|
||||
Image img;
|
||||
|
||||
lock (this)
|
||||
{
|
||||
img = (Image)pbResult.Image.Clone();
|
||||
}
|
||||
|
||||
OnImageUploadRequested(img);
|
||||
}
|
||||
}
|
||||
|
@ -143,7 +157,13 @@ private void btnCopy_Click(object sender, EventArgs e)
|
|||
{
|
||||
if (pbResult.Image != null)
|
||||
{
|
||||
Image img = (Image)pbResult.Image.Clone();
|
||||
Image img;
|
||||
|
||||
lock (this)
|
||||
{
|
||||
img = (Image)pbResult.Image.Clone();
|
||||
}
|
||||
|
||||
OnImageCopyRequested(img);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue