Sophie

Sophie

distrib > Mageia > cauldron > x86_64 > media > core-release-src > by-pkgid > 4c532bfb9916518564da5ba2805999f5 > files > 21

qtbase5-5.15.12-3.mga10.src.rpm

From f9842bb6feccfffce5caaa7dfe01594e2af6a207 Mon Sep 17 00:00:00 2001
From: Eirik Aavitsland <eirik.aavitsland@qt.io>
Date: Fri, 1 Oct 2021 10:30:38 +0200
Subject: [PATCH 021/147] Support transformations in pattern/texture brushes in
 pdf

The brush transform was ignored for pattern/texture brushes. Since
fill patterns always have a transform in pdf anyway, we can just
multiply in the brush transform.

Fixes: QTBUG-96978
Pick-to: 6.2
Change-Id: I80357f61fb879dfb1226d4ef9469ae5c9a9c1147
Reviewed-by: Lars Knoll <lars.knoll@qt.io>
Reviewed-by: Albert Astals Cid <albert.astals.cid@kdab.com>
(cherry picked from commit 2a546690bf457f4bfee0910ba979441511843f8b)
---
 src/gui/painting/qpdf.cpp | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/src/gui/painting/qpdf.cpp b/src/gui/painting/qpdf.cpp
index 3066744f1b..2c8d3c3b53 100644
--- a/src/gui/painting/qpdf.cpp
+++ b/src/gui/painting/qpdf.cpp
@@ -2760,6 +2760,8 @@ int QPdfEnginePrivate::addBrushPattern(const QTransform &m, bool *specifyColor,
         return gradientBrush(brush, matrix, gStateObject);
     }
 
+    matrix = brush.transform() * matrix;
+
     if ((!brush.isOpaque() && brush.style() < Qt::LinearGradientPattern) || opacity != 1.0)
         *gStateObject = addConstantAlphaObject(qRound(brush.color().alpha() * opacity),
                                                qRound(pen.color().alpha() * opacity));
-- 
2.40.1