diff --git a/qt5-qtbase.spec b/qt5-qtbase.spec index 417bcb5..49bed38 100644 --- a/qt5-qtbase.spec +++ b/qt5-qtbase.spec @@ -53,7 +53,7 @@ BuildRequires: pkgconfig(libsystemd) Name: qt5-qtbase Summary: Qt5 - QtBase components Version: 5.12.4 -Release: 3%{?dist} +Release: 4%{?dist} # See LGPL_EXCEPTIONS.txt, for exception details License: LGPLv2 with exceptions or GPLv3 with exceptions @@ -138,6 +138,7 @@ Patch156: 0056-QHighDpi-Replace-fromNative-toNative-with-scale.patch Patch166: 0066-High-DPI-Fix-crash-in-QWindow-mapFromGlobal.patch ## omit for now, appears to introduce symbol incompatibilities #Patch200: 0100-QHighDpi-fromNativePixels-use-correct-screen.patch +Patch250: qtbase-revert-reset-qwidget-winid-when-backing-window-surface-destroyed.patch # Do not check any files in %%{_qt5_plugindir}/platformthemes/ for requires. # Those themes are there for platform integration. If the required libraries are @@ -412,6 +413,7 @@ Qt5 libraries used for drawing widgets and OpenGL items. %patch156 -p1 %patch166 -p1 #patch200 -p1 +%patch250 -p1 # move some bundled libs to ensure they're not accidentally used pushd src/3rdparty @@ -1031,6 +1033,9 @@ fi %changelog +* Mon Jul 15 2019 Jan Grulich - 5.12.4-4 +- Revert "Reset QWidget's winId when backing window surface is destroyed" + * Fri Jun 28 2019 Rex Dieter - 5.12.4-3 - omit QTBUG-73231 patch fix, appears to introduce incompatible symbols diff --git a/qtbase-revert-reset-qwidget-winid-when-backing-window-surface-destroyed.patch b/qtbase-revert-reset-qwidget-winid-when-backing-window-surface-destroyed.patch new file mode 100644 index 0000000..c6503ff --- /dev/null +++ b/qtbase-revert-reset-qwidget-winid-when-backing-window-surface-destroyed.patch @@ -0,0 +1,36 @@ +From deac052a40c93633041da058d5c73c9e91aa76c7 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tor=20Arne=20Vestb=C3=B8?= +Date: Fri, 12 Jul 2019 12:28:29 +0200 +Subject: Revert "Reset QWidget's winId when backing window surface is + destroyed" + +This reverts commit a9246c7132a2c8864d3ae6cebd260bb9ee711fcb. + +The QWidget machinery is way to fragile to reset the winId under the +feet of QWidget like that. We would potentially need to include all +the logic in QWidget::destroy. This also ties into the flow between +QtGui and QtWidgets during window closing, which is still unresolved. + +Change-Id: I168048a63c89796398eb5331a80ce3e5c8d9a208 +Fixes: QTBUG-76588 +Task-number: QTBUG-69289 +Reviewed-by: Friedemann Kleint +Reviewed-by: Volker Hilsheimer + +diff --git a/src/widgets/kernel/qwidget.cpp b/src/widgets/kernel/qwidget.cpp +index fdb3872903..6f0f39a344 100644 +--- a/src/widgets/kernel/qwidget.cpp ++++ b/src/widgets/kernel/qwidget.cpp +@@ -9382,12 +9382,6 @@ bool QWidget::event(QEvent *event) + d->renderToTextureReallyDirty = 1; + #endif + break; +- case QEvent::PlatformSurface: { +- auto surfaceEvent = static_cast(event); +- if (surfaceEvent->surfaceEventType() == QPlatformSurfaceEvent::SurfaceAboutToBeDestroyed) +- d->setWinId(0); +- break; +- } + #ifndef QT_NO_PROPERTIES + case QEvent::DynamicPropertyChange: { + const QByteArray &propName = static_cast(event)->propertyName();