diff --git a/extra/qt5-base/PKGBUILD b/extra/qt5-base/PKGBUILD index 44a06bd80..87121703d 100644 --- a/extra/qt5-base/PKGBUILD +++ b/extra/qt5-base/PKGBUILD @@ -11,7 +11,7 @@ pkgbase=qt5-base pkgname=(qt5-base qt5-xcb-private-headers) _qtver=5.10.1 pkgver=${_qtver/-/} -pkgrel=1 +pkgrel=2 arch=('x86_64') url='http://qt-project.org/' license=('GPL3' 'LGPL3' 'FDL' 'custom') @@ -31,8 +31,10 @@ optdepends=('qt5-svg: to use SVG icon themes' conflicts=('qtchooser') groups=('qt' 'qt5') _pkgfqn="${pkgbase/5-/}-everywhere-src-${_qtver}" -source=("http://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz") -sha256sums=('d8660e189caa5da5142d5894d328b61a4d3ee9750b76d61ad74e4eee8765a969') +source=("http://download.qt.io/official_releases/qt/${pkgver%.*}/${_qtver}/submodules/${_pkgfqn}.tar.xz" + revert-Set-sharedPainter-correctly-for-QGraphicsEffect.patch) +sha256sums=('d8660e189caa5da5142d5894d328b61a4d3ee9750b76d61ad74e4eee8765a969' + '7161ea5747500dc9666f8d185f4b8e538799fc0aef574e577277747100ac4763') prepare() { cd ${_pkgfqn} @@ -50,6 +52,10 @@ prepare() { # Fix missing private includes https://bugreports.qt.io/browse/QTBUG-37417 sed -e '/CMAKE_NO_PRIVATE_INCLUDES\ \=\ true/d' -i mkspecs/features/create_cmake.prf + + # Revert upstream commit which breaks some Deepin components (FS#57531) + # https://bugreports.qt.io/browse/QTBUG-66226 + patch -Np1 -i ../revert-Set-sharedPainter-correctly-for-QGraphicsEffect.patch } build() { diff --git a/extra/qt5-base/revert-Set-sharedPainter-correctly-for-QGraphicsEffect.patch b/extra/qt5-base/revert-Set-sharedPainter-correctly-for-QGraphicsEffect.patch new file mode 100644 index 000000000..da692d01d --- /dev/null +++ b/extra/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 +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 +