From dd0cdf4724f4d67bbe88b7aa81e60bf2476d8851 Mon Sep 17 00:00:00 2001 From: nathbrow Date: Thu, 17 Jul 2025 14:45:22 -0700 Subject: [PATCH] Apply exclusion to grayscale filters as well (cherry picked from commit e0b04a11f02e6188e364ea26de96944d9927291a) --- src/Greenshot.Editor/Drawing/DrawableContainer.cs | 2 +- src/Greenshot.Editor/Drawing/Filters/GrayscaleFilter.cs | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Greenshot.Editor/Drawing/DrawableContainer.cs b/src/Greenshot.Editor/Drawing/DrawableContainer.cs index 9776d995d..08371753b 100644 --- a/src/Greenshot.Editor/Drawing/DrawableContainer.cs +++ b/src/Greenshot.Editor/Drawing/DrawableContainer.cs @@ -396,7 +396,7 @@ namespace Greenshot.Editor.Drawing public bool HasFilters => Filters.Count > 0; - public bool IsAreaHighlightContainer => Filters.Any(f => f is BrightnessFilter) && Filters.Any(f => f is BlurFilter); + public bool IsAreaHighlightContainer => Filters.Any(f => f.Invert && (f is BrightnessFilter || f is BlurFilter || f is GrayscaleFilter)); public abstract void Draw(Graphics graphics, RenderMode renderMode); diff --git a/src/Greenshot.Editor/Drawing/Filters/GrayscaleFilter.cs b/src/Greenshot.Editor/Drawing/Filters/GrayscaleFilter.cs index b382bd1d5..0eeaa76bd 100644 --- a/src/Greenshot.Editor/Drawing/Filters/GrayscaleFilter.cs +++ b/src/Greenshot.Editor/Drawing/Filters/GrayscaleFilter.cs @@ -55,6 +55,10 @@ namespace Greenshot.Editor.Drawing.Filters { graphics.SetClip(applyRect); graphics.ExcludeClip(rect); + foreach (NativeRect area in areasToExcludeFromFilters) + { + graphics.ExcludeClip(area); + } } ColorMatrix grayscaleMatrix = new ColorMatrix(new[]