summaryrefslogtreecommitdiffstats
path: root/abs/core/qt5-base/revert-Set-sharedPainter-correctly-for-QGraphicsEffect.patch
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/qt5-base/revert-Set-sharedPainter-correctly-for-QGraphicsEffect.patch')
-rw-r--r--abs/core/qt5-base/revert-Set-sharedPainter-correctly-for-QGraphicsEffect.patch71
1 files changed, 71 insertions, 0 deletions
diff --git a/abs/core/qt5-base/revert-Set-sharedPainter-correctly-for-QGraphicsEffect.patch b/abs/core/qt5-base/revert-Set-sharedPainter-correctly-for-QGraphicsEffect.patch
new file mode 100644
index 0000000..da692d0
--- /dev/null
+++ b/abs/core/qt5-base/revert-Set-sharedPainter-correctly-for-QGraphicsEffect.patch
@@ -0,0 +1,71 @@
+From f4bc1f620727366b6a977b106cc68fade95ef426 Mon Sep 17 00:00:00 2001
+From: Evangelos Foutras <evangelos@foutrelis.com>
+Date: Wed, 21 Feb 2018 04:20:20 +0200
+Subject: [PATCH] Revert "Set sharedPainter correctly for QGraphicsEffect"
+
+This reverts commit 7257862fb2edfab0219d6cd45c83677049404f7d.
+---
+ src/widgets/kernel/qwidget.cpp | 4 ++--
+ .../effects/qgraphicseffect/tst_qgraphicseffect.cpp | 21 ---------------------
+ 2 files changed, 2 insertions(+), 23 deletions(-)
+
+diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp
+index a973bee2cd..256c77e5a0 100644
+--- a/src/widgets/kernel/qwidget.cpp
++++ b/src/widgets/kernel/qwidget.cpp
+@@ -5482,11 +5482,11 @@ void QWidgetPrivate::drawWidget(QPaintDevice *pdev, const QRegion &rgn, const QP
+ setSystemClip(pdev->paintEngine(), pdev->devicePixelRatioF(), rgn.translated(offset));
+ QPainter p(pdev);
+ p.translate(offset);
+- context.painter = context.sharedPainter = &p;
++ context.painter = &p;
+ graphicsEffect->draw(&p);
+ setSystemClip(pdev->paintEngine(), 1, QRegion());
+ } else {
+- context.painter = context.sharedPainter = sharedPainter;
++ context.painter = sharedPainter;
+ if (sharedPainter->worldTransform() != sourced->lastEffectTransform) {
+ sourced->invalidateCache();
+ sourced->lastEffectTransform = sharedPainter->worldTransform();
+diff --git a/tests/auto/widgets/effects/qgraphicseffect/tst_qgraphicseffect.cpp b/tests/auto/widgets/effects/qgraphicseffect/tst_qgraphicseffect.cpp
+index dfe5baba71..a1cb729849 100644
+--- a/tests/auto/widgets/effects/qgraphicseffect/tst_qgraphicseffect.cpp
++++ b/tests/auto/widgets/effects/qgraphicseffect/tst_qgraphicseffect.cpp
+@@ -52,7 +52,6 @@ private slots:
+ void boundingRect2();
+ void draw();
+ void opacity();
+- void nestedOpaqueOpacity();
+ void grayscale();
+ void colorize();
+ void drawPixmapItem();
+@@ -408,26 +407,6 @@ void tst_QGraphicsEffect::opacity()
+ QCOMPARE(effect->m_opacity, qreal(0.5));
+ }
+
+-void tst_QGraphicsEffect::nestedOpaqueOpacity()
+-{
+- // QTBUG-60231: Nesting widgets with a QGraphicsEffect on a toplevel with
+- // QGraphicsOpacityEffect caused crashes due to constructing several
+- // QPainter instances on a device in the fast path for
+- // QGraphicsOpacityEffect::opacity=1
+- QWidget topLevel;
+- topLevel.setWindowTitle(QTest::currentTestFunction());
+- topLevel.resize(320, 200);
+- QGraphicsOpacityEffect *opacityEffect = new QGraphicsOpacityEffect;
+- opacityEffect->setOpacity(1);
+- topLevel.setGraphicsEffect(opacityEffect);
+- QWidget *child = new QWidget(&topLevel);
+- child->resize(topLevel.size() / 2);
+- QGraphicsDropShadowEffect *childEffect = new QGraphicsDropShadowEffect;
+- child->setGraphicsEffect(childEffect);
+- topLevel.show();
+- QVERIFY(QTest::qWaitForWindowExposed(&topLevel));
+-}
+-
+ void tst_QGraphicsEffect::grayscale()
+ {
+ if (qApp->desktop()->depth() < 24)
+--
+2.16.2
+