diff --git a/qt6-qtwebengine.spec b/qt6-qtwebengine.spec index cf815e9..ad75b37 100644 --- a/qt6-qtwebengine.spec +++ b/qt6-qtwebengine.spec @@ -88,7 +88,7 @@ Summary: Qt6 - QtWebEngine components Name: qt6-qtwebengine Version: 6.10.1 -Release: 3%{?dist} +Release: 5%{?dist} # See LICENSE.GPL LICENSE.LGPL LGPL_EXCEPTION.txt, for details # See also http://qt-project.org/doc/qt-5.0/qtdoc/licensing.html @@ -133,11 +133,15 @@ Patch5: qtwebengine-chromium-141-glibc-2.42-SYS_SECCOMP.patch ## Upstream patches: # https://bugreports.qt.io/browse/QTBUG-129985 Patch80: qtwebengine-fix-arm-build.patch +# Remove with Qt 6.10.2 # https://codereview.qt-project.org/c/qt/qtwebengine/+/702597 Patch81: qtwebengine-move-gpu-info-logging-to-gpu-thread.patch +# https://qt-project.atlassian.net/browse/QTBUG-142823 +Patch82: qtwebengine-fix-quick-popup-window-positioning-under-x11.patch ## Upstreamable patches: Patch100: qtwebengine-add-missing-pipewire-headers.patch +Patch101: qtwebengine-fix-build-against-gcc16.patch ## ppc64le port Patch200: qtwebengine-6.9-ppc64.patch @@ -483,15 +487,18 @@ popd %patch -P2 -p1 -b .link-pipewire %patch -P3 -p1 -b .aarch64-new-stat %patch -P4 -p1 -b .use-openh264 -%if 0%{?fedora} > 43 +%if 0%{?fedora} > 43 || 0%{?rhel} > 10 %patch -P5 -p1 -b .chromium-141-glibc-2.42-SYS_SECCOMP %endif ## upstream patches %patch -P80 -p1 -b .fix-arm-build +%patch -P81 -p1 -b .move-gpu-info-logging-to-gpu-thread +%patch -P82 -p1 -b .fix-quick-popup-window-positioning-under-x11 ## upstreamable patches %patch -P100 -p1 -b .add-missing-pipewire-headers +%patch -P101 -p1 -b .fix-build-against-gcc16 # ppc64le support %patch -P200 -p1 @@ -849,6 +856,12 @@ done %endif %changelog +* Tue Jan 13 2026 Jan Grulich - 6.10.1-5 +- Fix Quick popup window positioning under X11 + +* Sun Jan 11 2026 Jan Grulich - 6.10.1-4 +- Apply the "Move GPU info logging into the GPU thread" patch + * Thu Jan 08 2026 Jan Grulich - 6.10.1-3 - Move GPU info logging into the GPU thread diff --git a/qtwebengine-fix-build-against-gcc16.patch b/qtwebengine-fix-build-against-gcc16.patch new file mode 100644 index 0000000..ad97de9 --- /dev/null +++ b/qtwebengine-fix-build-against-gcc16.patch @@ -0,0 +1,12 @@ +diff --git a/src/3rdparty/chromium/base/strings/to_string.h b/src/3rdparty/chromium/base/strings/to_string.h +index 96e61daa9e..5d097946f7 100644 +--- a/src/3rdparty/chromium/base/strings/to_string.h ++++ b/src/3rdparty/chromium/base/strings/to_string.h +@@ -6,6 +6,7 @@ + #define BASE_STRINGS_TO_STRING_H_ + + #include ++#include + #include + #include + #include diff --git a/qtwebengine-fix-quick-popup-window-positioning-under-x11.patch b/qtwebengine-fix-quick-popup-window-positioning-under-x11.patch new file mode 100644 index 0000000..318a852 --- /dev/null +++ b/qtwebengine-fix-quick-popup-window-positioning-under-x11.patch @@ -0,0 +1,45 @@ +From 65ea28e7204eaeb39588a33cfc2f69c48951aa6a Mon Sep 17 00:00:00 2001 +From: Peter Varga +Date: Thu, 14 Aug 2025 16:17:41 +0200 +Subject: [PATCH] Fix Quick popup window positioning under X11 + +If the popup window has the Qt::Dialog flag, some window managers may +try to resize and move the popup after it becomes visible. This can lead +to a blinking popup or even worse, it can cause a loop that continuously +moves the popup window. + +Replace Qt::Tool flag with Qt::Popup to get rid of the Qt::Dialog flag +but keep popup as popup. + +Note on Wayland Qt:Tool is xdg toplevel not a 'popup' neither 'grabbing +popup' and it creates shell surface. This means it will get random +position on the screen. + +Note this tricky issue as we already changed that several times both +for widgets and quick due to different reasons (see 1390979a, 2f720836, +58467ed19, 7e7dd2625, c56169f7a1) + +Fixes: QTBUG-140321 +Task-number: QTBUG-132794 +Task-number: QTBUG-138747 +Pick-to: 6.10 +Change-Id: I8c3a94519008455fac2d8ab4c3bf34d860e2475b +Reviewed-by: Peter Varga +--- + .../render_widget_host_view_qt_delegate_quickwindow.cpp | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/webenginequick/render_widget_host_view_qt_delegate_quickwindow.cpp b/src/webenginequick/render_widget_host_view_qt_delegate_quickwindow.cpp +index 3ad88ca39aa..95b5e3500b3 100644 +--- a/src/webenginequick/render_widget_host_view_qt_delegate_quickwindow.cpp ++++ b/src/webenginequick/render_widget_host_view_qt_delegate_quickwindow.cpp +@@ -31,7 +31,8 @@ RenderWidgetHostViewQtDelegateQuickWindow::RenderWidgetHostViewQtDelegateQuickWi + RenderWidgetHostViewQtDelegateItem *realDelegate, QWindow *parent) + : QQuickWindow(), m_realDelegate(realDelegate), m_virtualParent(nullptr), m_transformed(false) + { +- setFlags(Qt::Tool | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint | Qt::WindowDoesNotAcceptFocus); ++ setFlags(Qt::Popup | Qt::WindowStaysOnTopHint | Qt::FramelessWindowHint ++ | Qt::WindowDoesNotAcceptFocus); + realDelegate->setParentItem(contentItem()); + setTransientParent(parent); + }