From d55b8afd6a44e8825109fde187c645fb2211ab2e Mon Sep 17 00:00:00 2001 From: Mira Grudzinska Date: Wed, 24 Apr 2024 14:04:36 +0200 Subject: [PATCH] svg_loader: fix opacity cloning The opacity value should be copied along with other node properties. --- src/loaders/svg/tvgSvgLoader.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/loaders/svg/tvgSvgLoader.cpp b/src/loaders/svg/tvgSvgLoader.cpp index d435ddd1..c4ccdc41 100644 --- a/src/loaders/svg/tvgSvgLoader.cpp +++ b/src/loaders/svg/tvgSvgLoader.cpp @@ -1104,6 +1104,7 @@ static void _handleFillRuleAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, static void _handleOpacityAttr(TVG_UNUSED SvgLoaderData* loader, SvgNode* node, const char* value) { + node->style->flags = (node->style->flags | SvgStyleFlags::Opacity); node->style->opacity = _toOpacity(value); } @@ -2962,6 +2963,9 @@ static void _styleCopy(SvgStyleProperty* to, const SvgStyleProperty* from) to->color = from->color; to->curColorSet = true; } + if (from->flags & SvgStyleFlags::Opacity) { + to->opacity = from->opacity; + } if (from->flags & SvgStyleFlags::PaintOrder) { to->paintOrder = from->paintOrder; }