From 09f6edce4ad76998767ce74dfeb95774993ead5d Mon Sep 17 00:00:00 2001 From: Jaex Date: Tue, 14 Nov 2017 15:27:32 +0300 Subject: [PATCH] Force cached effect to be inside canvas --- .../Shapes/Effect/BaseEffectShape.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ShareX.ScreenCaptureLib/Shapes/Effect/BaseEffectShape.cs b/ShareX.ScreenCaptureLib/Shapes/Effect/BaseEffectShape.cs index 831be7485..2bb2b8ff9 100644 --- a/ShareX.ScreenCaptureLib/Shapes/Effect/BaseEffectShape.cs +++ b/ShareX.ScreenCaptureLib/Shapes/Effect/BaseEffectShape.cs @@ -41,7 +41,7 @@ public virtual void OnDraw(Graphics g) if (cachedEffect != null) { g.InterpolationMode = InterpolationMode.NearestNeighbor; - g.DrawImage(cachedEffect, Rectangle); + g.DrawImage(cachedEffect, RectangleInsideCanvas); g.InterpolationMode = InterpolationMode.Bilinear; } else @@ -85,8 +85,12 @@ public override void OnResized() private void CacheEffect() { Dispose(); - cachedEffect = Manager.CropImage(Rectangle); - ApplyEffect((Bitmap)cachedEffect); + + if (IsInsideCanvas) + { + cachedEffect = Manager.CropImage(RectangleInsideCanvas); + ApplyEffect((Bitmap)cachedEffect); + } } public override void Dispose()