From 13beed172238ba34d439a7cd0e73141bdecd55ab Mon Sep 17 00:00:00 2001 From: MacDue Date: Sun, 27 Nov 2022 14:04:04 +0000 Subject: [PATCH] LibGfx: Preseve original alpha when applying tint filter --- Userland/Libraries/LibGfx/Filters/TintFilter.h | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/Userland/Libraries/LibGfx/Filters/TintFilter.h b/Userland/Libraries/LibGfx/Filters/TintFilter.h index edc613a013f..c471a573a0e 100644 --- a/Userland/Libraries/LibGfx/Filters/TintFilter.h +++ b/Userland/Libraries/LibGfx/Filters/TintFilter.h @@ -15,17 +15,20 @@ class TintFilter : public ColorFilter { public: TintFilter(Color color, float amount) : ColorFilter(amount) - , m_color(color) + , m_color(Color::from_rgb(color.value())) { } + virtual bool amount_handled_in_filter() const override { return true; } + virtual StringView class_name() const override { return "TintFilter"sv; } protected: - Color convert_color(Color) override + Color convert_color(Color dest) override { - // Note: ColorFilter will blend by amount - return m_color; + return Color::from_rgb(dest.value()) + .mixed_with(m_color, m_amount) + .with_alpha(dest.alpha()); }; private: