diff --git a/.gitignore b/.gitignore index 53f6155..c03e7cf 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/qtwayland-everywhere-src-5.15.2.tar.xz +SOURCES/qtwayland-everywhere-opensource-src-5.15.3.tar.xz diff --git a/.qt5-qtwayland.metadata b/.qt5-qtwayland.metadata index 1c7bc39..4f6919f 100644 --- a/.qt5-qtwayland.metadata +++ b/.qt5-qtwayland.metadata @@ -1 +1 @@ -b547a38762ca6ef6d14545b4d51aabbcf06cc17e SOURCES/qtwayland-everywhere-src-5.15.2.tar.xz +021b5c6fa4f5dc4c3cc87da9a380da100a30ffdf SOURCES/qtwayland-everywhere-opensource-src-5.15.3.tar.xz diff --git a/SOURCES/0011-Use-qWarning-and-_exit-instead-of-qFatal-for-wayland.patch b/SOURCES/0001-Use-qWarning-and-_exit-instead-of-qFatal-for-wayland.patch similarity index 91% rename from SOURCES/0011-Use-qWarning-and-_exit-instead-of-qFatal-for-wayland.patch rename to SOURCES/0001-Use-qWarning-and-_exit-instead-of-qFatal-for-wayland.patch index 2a3bd4b..c7c1e30 100644 --- a/SOURCES/0011-Use-qWarning-and-_exit-instead-of-qFatal-for-wayland.patch +++ b/SOURCES/0001-Use-qWarning-and-_exit-instead-of-qFatal-for-wayland.patch @@ -1,7 +1,7 @@ -From 9ee2ea141adc7765f6c212e63839ef23a4494b30 Mon Sep 17 00:00:00 2001 +From 610af8f0ba9de42cb22228e4e4b3fd77275e3e17 Mon Sep 17 00:00:00 2001 From: Weng Xuetian Date: Tue, 9 Mar 2021 10:43:59 -0800 -Subject: [PATCH 11/52] Use qWarning and _exit() instead of qFatal for wayland +Subject: [PATCH 01/40] Use qWarning and _exit() instead of qFatal for wayland error This type of error is likely to happen upon system logout. qFatal would diff --git a/SOURCES/0014-Translate-opaque-area-with-frame-margins.patch b/SOURCES/0002-Translate-opaque-area-with-frame-margins.patch similarity index 90% rename from SOURCES/0014-Translate-opaque-area-with-frame-margins.patch rename to SOURCES/0002-Translate-opaque-area-with-frame-margins.patch index e4a2de5..3019b00 100644 --- a/SOURCES/0014-Translate-opaque-area-with-frame-margins.patch +++ b/SOURCES/0002-Translate-opaque-area-with-frame-margins.patch @@ -1,7 +1,7 @@ -From a3e3ac1c86a956b25b1dc24f14518b6e6c96bcfc Mon Sep 17 00:00:00 2001 +From d353938c1a07a803656489cada8683e31f8f1c62 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Wed, 10 Feb 2021 17:11:27 +0100 -Subject: [PATCH 14/52] Translate opaque area with frame margins +Subject: [PATCH 02/40] Translate opaque area with frame margins The opaque area doesn't take window decorations into account, which may result into possible graphical artefacts. diff --git a/SOURCES/0015-Client-Send-exposeEvent-to-parent-on-subsurface-posi.patch b/SOURCES/0003-Client-Send-exposeEvent-to-parent-on-subsurface-posi.patch similarity index 96% rename from SOURCES/0015-Client-Send-exposeEvent-to-parent-on-subsurface-posi.patch rename to SOURCES/0003-Client-Send-exposeEvent-to-parent-on-subsurface-posi.patch index c081d91..ad11445 100644 --- a/SOURCES/0015-Client-Send-exposeEvent-to-parent-on-subsurface-posi.patch +++ b/SOURCES/0003-Client-Send-exposeEvent-to-parent-on-subsurface-posi.patch @@ -1,7 +1,7 @@ -From 2073ff99e62d4f99ed3f1f45559c5b68a61c5f66 Mon Sep 17 00:00:00 2001 +From 11e9bd41951ec9f229e20566f821aa39ca011352 Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Mon, 14 Sep 2020 17:08:39 +0100 -Subject: [PATCH 15/52] Client: Send exposeEvent to parent on subsurface +Subject: [PATCH 03/40] Client: Send exposeEvent to parent on subsurface position changes When a subsurface is moved, we need the parent window to commit to apply diff --git a/SOURCES/0016-Get-correct-decoration-margins-region.patch b/SOURCES/0004-Get-correct-decoration-margins-region.patch similarity index 92% rename from SOURCES/0016-Get-correct-decoration-margins-region.patch rename to SOURCES/0004-Get-correct-decoration-margins-region.patch index 844f0c9..ee523a4 100644 --- a/SOURCES/0016-Get-correct-decoration-margins-region.patch +++ b/SOURCES/0004-Get-correct-decoration-margins-region.patch @@ -1,7 +1,7 @@ -From 6810b0f66a34056bfe0da7299d7a768e700e58f5 Mon Sep 17 00:00:00 2001 +From 50a9256db8cd43665cf74cf94a293d1c05375d33 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Thu, 11 Feb 2021 15:12:32 +0100 -Subject: [PATCH 16/52] Get correct decoration margins region +Subject: [PATCH 04/40] Get correct decoration margins region Size we use to calculate margins region already contains size including margins. This resulted into bigger region and not properly damaging diff --git a/SOURCES/0005-Scanner-Avoid-accessing-dangling-pointers-in-destroy.patch b/SOURCES/0005-Scanner-Avoid-accessing-dangling-pointers-in-destroy.patch deleted file mode 100644 index 4fbabfa..0000000 --- a/SOURCES/0005-Scanner-Avoid-accessing-dangling-pointers-in-destroy.patch +++ /dev/null @@ -1,38 +0,0 @@ -From e5c272423d1bba2825086b82fd97499237a6fa4b Mon Sep 17 00:00:00 2001 -From: Vlad Zahorodnii -Date: Fri, 30 Oct 2020 16:55:30 +0200 -Subject: [PATCH 05/52] Scanner: Avoid accessing dangling pointers in - destroy_func() - -Usually, the object associated with the resource gets destroyed in the -destroy_resource() function. - -Therefore, we need to double-check that the object is still alive before -trying to reset its m_resource. - -Change-Id: I26408228f58919db17eb29584a1cbd4a9427d25c -Reviewed-by: Eskil Abrahamsen Blomfeldt -(cherry picked from commit 735164b5c2a2637a8d53a8803a2401e4ef477ff0) -Reviewed-by: Qt Cherry-pick Bot ---- - src/qtwaylandscanner/qtwaylandscanner.cpp | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/qtwaylandscanner/qtwaylandscanner.cpp b/src/qtwaylandscanner/qtwaylandscanner.cpp -index 1d635f06..e2f87bbd 100644 ---- a/src/qtwaylandscanner/qtwaylandscanner.cpp -+++ b/src/qtwaylandscanner/qtwaylandscanner.cpp -@@ -814,7 +814,9 @@ bool Scanner::process() - printf(" if (Q_LIKELY(that)) {\n"); - printf(" that->m_resource_map.remove(resource->client(), resource);\n"); - printf(" that->%s_destroy_resource(resource);\n", interfaceNameStripped); -- printf(" if (that->m_resource == resource)\n"); -+ printf("\n"); -+ printf(" that = resource->%s_object;\n", interfaceNameStripped); -+ printf(" if (that && that->m_resource == resource)\n"); - printf(" that->m_resource = nullptr;\n"); - printf(" }\n"); - printf(" delete resource;\n"); --- -2.35.1 - diff --git a/SOURCES/0017-xdgshell-Tell-the-compositor-the-screen-we-re-expect.patch b/SOURCES/0005-xdgshell-Tell-the-compositor-the-screen-we-re-expect.patch similarity index 91% rename from SOURCES/0017-xdgshell-Tell-the-compositor-the-screen-we-re-expect.patch rename to SOURCES/0005-xdgshell-Tell-the-compositor-the-screen-we-re-expect.patch index 336e3fb..7d27a60 100644 --- a/SOURCES/0017-xdgshell-Tell-the-compositor-the-screen-we-re-expect.patch +++ b/SOURCES/0005-xdgshell-Tell-the-compositor-the-screen-we-re-expect.patch @@ -1,7 +1,7 @@ -From cea69b8adec1e61adc1fa04cbf46b77c0d72c75e Mon Sep 17 00:00:00 2001 +From f408482e4364293e5ab9889854a759796436971d Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Mon, 23 Nov 2020 20:07:02 +0100 -Subject: [PATCH 17/52] xdgshell: Tell the compositor the screen we're +Subject: [PATCH 05/40] xdgshell: Tell the compositor the screen we're expecting to fill The xdgshell protocol allows us to tell the output to fill. This makes diff --git a/SOURCES/0006-Make-setting-QT_SCALE_FACTOR-work-on-Wayland.patch b/SOURCES/0006-Make-setting-QT_SCALE_FACTOR-work-on-Wayland.patch deleted file mode 100644 index 5efd227..0000000 --- a/SOURCES/0006-Make-setting-QT_SCALE_FACTOR-work-on-Wayland.patch +++ /dev/null @@ -1,38 +0,0 @@ -From a825fb5f714fd79d16cc3ebbdd327e7961b07d0a Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= -Date: Mon, 16 Nov 2020 19:37:33 +0100 -Subject: [PATCH 06/52] Make setting QT_SCALE_FACTOR work on Wayland - -Follow-up to 8cb1b07aea12d50b4fecc45c903705dfd368022a, -fixes one additional case (Use of minimum/maximum size). - -Fixes: QTBUG-87762 -Change-Id: I73e0df2529b0cadf25ad50ea7459cdbb92caf424 -Reviewed-by: Eskil Abrahamsen Blomfeldt -(cherry picked from commit 6ed363e3665f17d935f8636d9c958154c898f5c5) -Reviewed-by: Qt Cherry-pick Bot ---- - src/client/qwaylandwindow.cpp | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp -index bc031ed5..eb053406 100644 ---- a/src/client/qwaylandwindow.cpp -+++ b/src/client/qwaylandwindow.cpp -@@ -332,9 +332,11 @@ void QWaylandWindow::setWindowIcon(const QIcon &icon) - - void QWaylandWindow::setGeometry_helper(const QRect &rect) - { -+ QSize minimum = windowMinimumSize(); -+ QSize maximum = windowMaximumSize(); - QPlatformWindow::setGeometry(QRect(rect.x(), rect.y(), -- qBound(window()->minimumWidth(), rect.width(), window()->maximumWidth()), -- qBound(window()->minimumHeight(), rect.height(), window()->maximumHeight()))); -+ qBound(minimum.width(), rect.width(), maximum.width()), -+ qBound(minimum.height(), rect.height(), maximum.height()))); - - if (mSubSurfaceWindow) { - QMargins m = QPlatformWindow::parent()->frameMargins(); --- -2.35.1 - diff --git a/SOURCES/0019-client-Allow-QWaylandInputContext-to-accept-composed.patch b/SOURCES/0006-client-Allow-QWaylandInputContext-to-accept-composed.patch similarity index 98% rename from SOURCES/0019-client-Allow-QWaylandInputContext-to-accept-composed.patch rename to SOURCES/0006-client-Allow-QWaylandInputContext-to-accept-composed.patch index e1cea9d..ebec918 100644 --- a/SOURCES/0019-client-Allow-QWaylandInputContext-to-accept-composed.patch +++ b/SOURCES/0006-client-Allow-QWaylandInputContext-to-accept-composed.patch @@ -1,7 +1,7 @@ -From 91c48320633e493b4cd519e5d73b836a878b2b77 Mon Sep 17 00:00:00 2001 +From d6dd815014564f235fb972eb72d28ccca6cf3549 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Wed, 10 Mar 2021 01:09:13 +0100 -Subject: [PATCH 19/52] client: Allow QWaylandInputContext to accept composed +Subject: [PATCH 06/40] client: Allow QWaylandInputContext to accept composed key combinations At the moment, we are forcing user to choose to either compose or use diff --git a/SOURCES/0020-Client-Announce-an-output-after-receiving-more-compl.patch b/SOURCES/0007-Client-Announce-an-output-after-receiving-more-compl.patch similarity index 97% rename from SOURCES/0020-Client-Announce-an-output-after-receiving-more-compl.patch rename to SOURCES/0007-Client-Announce-an-output-after-receiving-more-compl.patch index e7e10d0..f9b7750 100644 --- a/SOURCES/0020-Client-Announce-an-output-after-receiving-more-compl.patch +++ b/SOURCES/0007-Client-Announce-an-output-after-receiving-more-compl.patch @@ -1,7 +1,7 @@ -From d5186701e27ad6f09f3944809cec2a25c5328026 Mon Sep 17 00:00:00 2001 +From a6fb2a976ecd778e450afe89c180c8c748beb568 Mon Sep 17 00:00:00 2001 From: Vlad Zahorodnii Date: Wed, 5 May 2021 20:49:26 +0300 -Subject: [PATCH 20/52] Client: Announce an output after receiving more +Subject: [PATCH 07/40] Client: Announce an output after receiving more complete state Output initialization is not atomic, meaning that the compositor may diff --git a/SOURCES/0007-Do-not-try-to-eglMakeCurrent-for-unintended-case.patch b/SOURCES/0007-Do-not-try-to-eglMakeCurrent-for-unintended-case.patch deleted file mode 100644 index adaf5fa..0000000 --- a/SOURCES/0007-Do-not-try-to-eglMakeCurrent-for-unintended-case.patch +++ /dev/null @@ -1,62 +0,0 @@ -From 2c0a03e9aea13831d05ac03996949f888afd5085 Mon Sep 17 00:00:00 2001 -From: Jaehak Lee -Date: Sun, 8 Nov 2020 11:40:06 +0900 -Subject: [PATCH 07/52] Do not try to eglMakeCurrent for unintended case - -The QSGThreadedRenderLoop::hide can be called at twice, -when the QWindowPrivate::setVisible(false) is called. - -The eglSurface is EGL_NO_SURFACE when the second QSGThreadedRenderLoop::hide is -called. And if EGL_KHR_surfaceless_context is supported, the eglMakeCurrent -don't return the false. - -But this case is not intended. So, add the defence code for above case. - -Fixes: QTBUG-88277 -Change-Id: Ia9e5990303e98f0eedc48531e5af62ff9961f419 -Reviewed-by: Laszlo Agocs -Reviewed-by: Eskil Abrahamsen Blomfeldt ---- - .../client/wayland-egl/qwaylandglcontext.cpp | 6 ++++++ - .../client/wayland-egl/qwaylandglcontext.h | 1 + - 2 files changed, 7 insertions(+) - -diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp -index ccebf43d..681f82f4 100644 ---- a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp -+++ b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp -@@ -336,6 +336,8 @@ QWaylandGLContext::QWaylandGLContext(EGLDisplay eglDisplay, QWaylandDisplay *dis - << "It may also cause the event loop to freeze in some situations"; - } - -+ m_supportSurfaceLessContext = q_hasEglExtension(m_eglDisplay, "EGL_KHR_surfaceless_context"); -+ - updateGLFormat(); - } - -@@ -439,6 +441,10 @@ bool QWaylandGLContext::makeCurrent(QPlatformSurface *surface) - eglSurface = window->eglSurface(); - } - -+ if (eglSurface == EGL_NO_SURFACE && m_supportSurfaceLessContext) { -+ return false; -+ } -+ - if (!eglMakeCurrent(m_eglDisplay, eglSurface, eglSurface, m_context)) { - qWarning("QWaylandGLContext::makeCurrent: eglError: %x, this: %p \n", eglGetError(), this); - window->setCanResize(true); -diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.h b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.h -index 46c7bb76..93edaec0 100644 ---- a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.h -+++ b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.h -@@ -93,6 +93,7 @@ private: - DecorationsBlitter *m_blitter = nullptr; - uint m_api; - bool m_supportNonBlockingSwap = true; -+ bool m_supportSurfaceLessContext = false; - }; - - } --- -2.35.1 - diff --git a/SOURCES/0021-Fix-issue-with-repeated-window-size-changes.patch b/SOURCES/0008-Fix-issue-with-repeated-window-size-changes.patch similarity index 95% rename from SOURCES/0021-Fix-issue-with-repeated-window-size-changes.patch rename to SOURCES/0008-Fix-issue-with-repeated-window-size-changes.patch index 4a7469e..1733e6c 100644 --- a/SOURCES/0021-Fix-issue-with-repeated-window-size-changes.patch +++ b/SOURCES/0008-Fix-issue-with-repeated-window-size-changes.patch @@ -1,7 +1,7 @@ -From 62494312db0f58053d1342bfacc7984186fdf3a6 Mon Sep 17 00:00:00 2001 +From bb9288c913dc49aefc3fad03ec243809b6b21a88 Mon Sep 17 00:00:00 2001 From: Jaeyoon Jung Date: Mon, 15 Feb 2021 08:31:06 +0900 -Subject: [PATCH 21/52] Fix issue with repeated window size changes +Subject: [PATCH 08/40] Fix issue with repeated window size changes Check if the new window size is different from the size requested previously before calling wl_egl_window_resize. It addresses the issue diff --git a/SOURCES/0008-Make-setting-QT_SCALE_FACTOR-work-on-Wayland.patch b/SOURCES/0008-Make-setting-QT_SCALE_FACTOR-work-on-Wayland.patch deleted file mode 100644 index b2a2d60..0000000 --- a/SOURCES/0008-Make-setting-QT_SCALE_FACTOR-work-on-Wayland.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 10005185e06857ce119c50fe710f9eedde06ec5e Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Morten=20Johan=20S=C3=B8rvig?= -Date: Fri, 13 Nov 2020 11:21:50 +0100 -Subject: [PATCH 08/52] Make setting QT_SCALE_FACTOR work on Wayland - -QWindow geometry accessors return geometry in device -independent pixels. Normally this coordinate system -is equivalent to the Wayland native coordinate system, -but this is not the case when QT_SCALE_FACTOR is set. - -Replace QWindow geometry calls with the helpers from -QPlatformWindow which return geometry in the native -coordinate system: - -QWindow::geometry() -> QPlatformWindow::windowGeometry() -QWindow::frameGeometry() -> QPlatformWindow::windowFrameGeometry() - -Task-number: QTBUG-87762 -Fixes: QTBUG-88064 -(cherry-picked from commit 8cb1b07aea12d50b4fecc45c903705dfd368022a) -Change-Id: I6e2029bc6210f12441ae7c9d8b678271e9922dde -Reviewed-by: Eskil Abrahamsen Blomfeldt ---- - src/client/qwaylandwindow.cpp | 7 ++++--- - .../shellintegration/wl-shell/qwaylandwlshellsurface.cpp | 2 +- - .../shellintegration/xdg-shell-v5/qwaylandxdgsurfacev5.cpp | 2 +- - .../shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp | 2 +- - .../shellintegration/xdg-shell/qwaylandxdgshell.cpp | 2 +- - 5 files changed, 8 insertions(+), 7 deletions(-) - -diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp -index eb053406..9b343702 100644 ---- a/src/client/qwaylandwindow.cpp -+++ b/src/client/qwaylandwindow.cpp -@@ -194,10 +194,11 @@ void QWaylandWindow::initWindow() - if (QScreen *s = window()->screen()) - setOrientationMask(s->orientationUpdateMask()); - setWindowFlags(window()->flags()); -- if (window()->geometry().isEmpty()) -+ QRect geometry = windowGeometry(); -+ if (geometry.isEmpty()) - setGeometry_helper(QRect(QPoint(), QSize(500,500))); - else -- setGeometry_helper(window()->geometry()); -+ setGeometry_helper(geometry); - setMask(window()->mask()); - if (mShellSurface) - mShellSurface->requestWindowStates(window()->windowStates()); -@@ -431,7 +432,7 @@ void QWaylandWindow::setVisible(bool visible) - initWindow(); - mDisplay->flushRequests(); - -- setGeometry(window()->geometry()); -+ setGeometry(windowGeometry()); - // Don't flush the events here, or else the newly visible window may start drawing, but since - // there was no frame before it will be stuck at the waitForFrameSync() in - // QWaylandShmBackingStore::beginPaint(). -diff --git a/src/plugins/shellintegration/wl-shell/qwaylandwlshellsurface.cpp b/src/plugins/shellintegration/wl-shell/qwaylandwlshellsurface.cpp -index 245fec19..8f41118d 100644 ---- a/src/plugins/shellintegration/wl-shell/qwaylandwlshellsurface.cpp -+++ b/src/plugins/shellintegration/wl-shell/qwaylandwlshellsurface.cpp -@@ -134,7 +134,7 @@ void QWaylandWlShellSurface::applyConfigure() - { - if ((m_pending.states & (Qt::WindowMaximized|Qt::WindowFullScreen)) - && !(m_applied.states & (Qt::WindowMaximized|Qt::WindowFullScreen))) { -- m_normalSize = m_window->window()->frameGeometry().size(); -+ m_normalSize = m_window->windowFrameGeometry().size(); - } - - if (m_pending.states != m_applied.states) -diff --git a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgsurfacev5.cpp b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgsurfacev5.cpp -index 770fad7e..73aba1ee 100644 ---- a/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgsurfacev5.cpp -+++ b/src/plugins/shellintegration/xdg-shell-v5/qwaylandxdgsurfacev5.cpp -@@ -157,7 +157,7 @@ void QWaylandXdgSurfaceV5::applyConfigure() - if (m_pending.isResizing) - m_normalSize = m_pending.size; - else if (!(m_acked.states & (Qt::WindowMaximized|Qt::WindowFullScreen))) -- m_normalSize = m_window->window()->frameGeometry().size(); -+ m_normalSize = m_window->windowFrameGeometry().size(); - - if ((m_pending.states & Qt::WindowActive) && !(m_acked.states & Qt::WindowActive)) - m_window->display()->handleWindowActivated(m_window); -diff --git a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp -index c137b308..8c371661 100644 ---- a/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp -+++ b/src/plugins/shellintegration/xdg-shell-v6/qwaylandxdgshellv6.cpp -@@ -72,7 +72,7 @@ QWaylandXdgSurfaceV6::Toplevel::~Toplevel() - void QWaylandXdgSurfaceV6::Toplevel::applyConfigure() - { - if (!(m_applied.states & (Qt::WindowMaximized|Qt::WindowFullScreen))) -- m_normalSize = m_xdgSurface->m_window->window()->frameGeometry().size(); -+ m_normalSize = m_xdgSurface->m_window->windowFrameGeometry().size(); - - if ((m_pending.states & Qt::WindowActive) && !(m_applied.states & Qt::WindowActive)) - m_xdgSurface->m_window->display()->handleWindowActivated(m_xdgSurface->m_window); -diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp -index b6d23ac1..1c762944 100644 ---- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp -+++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp -@@ -83,7 +83,7 @@ QWaylandXdgSurface::Toplevel::~Toplevel() - void QWaylandXdgSurface::Toplevel::applyConfigure() - { - if (!(m_applied.states & (Qt::WindowMaximized|Qt::WindowFullScreen))) -- m_normalSize = m_xdgSurface->m_window->window()->frameGeometry().size(); -+ m_normalSize = m_xdgSurface->m_window->windowFrameGeometry().size(); - - if ((m_pending.states & Qt::WindowActive) && !(m_applied.states & Qt::WindowActive)) - m_xdgSurface->m_window->display()->handleWindowActivated(m_xdgSurface->m_window); --- -2.35.1 - diff --git a/SOURCES/0009-Ensure-that-grabbing-is-performed-in-correct-context.patch b/SOURCES/0009-Ensure-that-grabbing-is-performed-in-correct-context.patch deleted file mode 100644 index 20b5e04..0000000 --- a/SOURCES/0009-Ensure-that-grabbing-is-performed-in-correct-context.patch +++ /dev/null @@ -1,35 +0,0 @@ -From dba4bc4f1d6dfee9fe9433c55b15653d703bed4f Mon Sep 17 00:00:00 2001 -From: Andreas Cord-Landwehr -Date: Wed, 2 Dec 2020 20:55:52 +0100 -Subject: [PATCH 09/52] Ensure that grabbing is performed in correct context - -For multi-display rendering on EGL, it is mandatory that the grabbing of -the surface happens in the same EGL context as the surface belongs to. -By adding the grabbing to the rendering stage of the image, this -relation is forced. - -Task-number: QTBUG-87597 -Change-Id: I50f40df1215aa771d714065e942c5a738ba6269f -Reviewed-by: Eskil Abrahamsen Blomfeldt -(cherry picked from commit ab3a1a07f3d1e0d5a9e9d97b6b3b587180e2f4c8) -Reviewed-by: Qt Cherry-pick Bot ---- - src/compositor/compositor_api/qwaylandquickcompositor.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/compositor/compositor_api/qwaylandquickcompositor.cpp b/src/compositor/compositor_api/qwaylandquickcompositor.cpp -index 49f0860e..db1cf00f 100644 ---- a/src/compositor/compositor_api/qwaylandquickcompositor.cpp -+++ b/src/compositor/compositor_api/qwaylandquickcompositor.cpp -@@ -161,7 +161,7 @@ void QWaylandQuickCompositor::grabSurface(QWaylandSurfaceGrabber *grabber, const - GrabState *state = new GrabState; - state->grabber = grabber; - state->buffer = buffer; -- static_cast(output->window())->scheduleRenderJob(state, QQuickWindow::NoStage); -+ static_cast(output->window())->scheduleRenderJob(state, QQuickWindow::AfterRenderingStage); - #else - emit grabber->failed(QWaylandSurfaceGrabber::UnknownBufferType); - #endif --- -2.35.1 - diff --git a/SOURCES/0022-Include-locale.h-for-setlocale-LC_CTYPE.patch b/SOURCES/0009-Include-locale.h-for-setlocale-LC_CTYPE.patch similarity index 86% rename from SOURCES/0022-Include-locale.h-for-setlocale-LC_CTYPE.patch rename to SOURCES/0009-Include-locale.h-for-setlocale-LC_CTYPE.patch index 67e8339..ca46b4f 100644 --- a/SOURCES/0022-Include-locale.h-for-setlocale-LC_CTYPE.patch +++ b/SOURCES/0009-Include-locale.h-for-setlocale-LC_CTYPE.patch @@ -1,7 +1,7 @@ -From 1ccebbab3a42690a0812e2c4c76016799bf6cf1f Mon Sep 17 00:00:00 2001 +From 82720c9d7e0a706793f9716144347171820ddf4d Mon Sep 17 00:00:00 2001 From: Albert Astals Cid Date: Mon, 10 May 2021 14:38:49 +0200 -Subject: [PATCH 22/52] Include locale.h for setlocale/LC_CTYPE +Subject: [PATCH 09/40] Include locale.h for setlocale/LC_CTYPE Pick-to: 5.15 Change-Id: Iced32a31a63cec71008549c1e0961d59ffc45a37 diff --git a/SOURCES/0023-Client-Connect-drags-being-accepted-to-updating-the-.patch b/SOURCES/0010-Client-Connect-drags-being-accepted-to-updating-the-.patch similarity index 92% rename from SOURCES/0023-Client-Connect-drags-being-accepted-to-updating-the-.patch rename to SOURCES/0010-Client-Connect-drags-being-accepted-to-updating-the-.patch index 8d87353..43e73a6 100644 --- a/SOURCES/0023-Client-Connect-drags-being-accepted-to-updating-the-.patch +++ b/SOURCES/0010-Client-Connect-drags-being-accepted-to-updating-the-.patch @@ -1,7 +1,7 @@ -From fcc2f57cefa66339c8cb6632f45a47fbb99bb60d Mon Sep 17 00:00:00 2001 +From 6b2084a4c9f87d3575fc6aec3f7454304bcc6188 Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Tue, 9 Feb 2021 16:09:21 +0000 -Subject: [PATCH 23/52] Client: Connect drags being accepted to updating the +Subject: [PATCH 10/40] Client: Connect drags being accepted to updating the source drag icon Currently in a multi-process drag and drop when the other client accepts diff --git a/SOURCES/0010-Fix-leaked-subsurface-wayland-items.patch b/SOURCES/0010-Fix-leaked-subsurface-wayland-items.patch deleted file mode 100644 index f727f3f..0000000 --- a/SOURCES/0010-Fix-leaked-subsurface-wayland-items.patch +++ /dev/null @@ -1,36 +0,0 @@ -From a8d35b3c18bdb05a0da3ed50a554a7b7bd4ebed3 Mon Sep 17 00:00:00 2001 -From: Eskil Abrahamsen Blomfeldt -Date: Mon, 30 Nov 2020 13:13:18 +0100 -Subject: [PATCH 10/52] Fix leaked subsurface wayland items - -Whenever a subsurface was added we would create a QWaylandQuickItem, -but this was never deleted. It is one-to-one with the surface, so it -should be deleted at the same time. - -[ChangeLog][QtWaylandCompositor] Fixed a memory leak when creating -subsurfaces. - -Task-number: QTBUG-88782 -Change-Id: If4b3f15200ce3bd123ff73847d3593d174a39229 -Reviewed-by: Paul Olav Tvete -(cherry picked from commit 38fc568b30bf916165324c2cd2db127d2a9aa68c) -Reviewed-by: Qt Cherry-pick Bot ---- - src/compositor/compositor_api/qwaylandquickitem.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/compositor/compositor_api/qwaylandquickitem.cpp b/src/compositor/compositor_api/qwaylandquickitem.cpp -index 15f0195c..2218f43a 100644 ---- a/src/compositor/compositor_api/qwaylandquickitem.cpp -+++ b/src/compositor/compositor_api/qwaylandquickitem.cpp -@@ -737,6 +737,7 @@ void QWaylandQuickItem::handleSubsurfaceAdded(QWaylandSurface *childSurface) - childItem->setVisible(true); - childItem->setParentItem(this); - connect(childSurface, &QWaylandSurface::subsurfacePositionChanged, childItem, &QWaylandQuickItem::handleSubsurfacePosition); -+ connect(childSurface, &QWaylandSurface::destroyed, childItem, &QObject::deleteLater); - } else { - bool success = QMetaObject::invokeMethod(d->subsurfaceHandler, "handleSubsurfaceAdded", Q_ARG(QWaylandSurface *, childSurface)); - if (!success) --- -2.35.1 - diff --git a/SOURCES/0024-Client-Disconnect-registry-listener-on-destruction.patch b/SOURCES/0011-Client-Disconnect-registry-listener-on-destruction.patch similarity index 93% rename from SOURCES/0024-Client-Disconnect-registry-listener-on-destruction.patch rename to SOURCES/0011-Client-Disconnect-registry-listener-on-destruction.patch index e6d9550..5d31df9 100644 --- a/SOURCES/0024-Client-Disconnect-registry-listener-on-destruction.patch +++ b/SOURCES/0011-Client-Disconnect-registry-listener-on-destruction.patch @@ -1,7 +1,7 @@ -From 1b5e43a593e917610e6245f7a272ac081c508ba4 Mon Sep 17 00:00:00 2001 +From a1d6aa2078b8a840469f13ae720669cb4f99291d Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Fri, 14 May 2021 13:23:24 +0100 -Subject: [PATCH 24/52] Client: Disconnect registry listener on destruction +Subject: [PATCH 11/40] Client: Disconnect registry listener on destruction If a display outlives a QWaylandClientExtension and a new global is announced we end up delivering an event to a now deleted extension which diff --git a/SOURCES/0025-Client-Set-XdgShell-size-hints-before-the-first-comm.patch b/SOURCES/0012-Client-Set-XdgShell-size-hints-before-the-first-comm.patch similarity index 94% rename from SOURCES/0025-Client-Set-XdgShell-size-hints-before-the-first-comm.patch rename to SOURCES/0012-Client-Set-XdgShell-size-hints-before-the-first-comm.patch index 72872aa..347c74b 100644 --- a/SOURCES/0025-Client-Set-XdgShell-size-hints-before-the-first-comm.patch +++ b/SOURCES/0012-Client-Set-XdgShell-size-hints-before-the-first-comm.patch @@ -1,7 +1,7 @@ -From 36a552fa530be57091e986ebd1468d75d3061743 Mon Sep 17 00:00:00 2001 +From d9d7c73f908db351921cf016c5e079f3d13e84aa Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Mon, 3 May 2021 23:01:53 +0100 -Subject: [PATCH 25/52] Client: Set XdgShell size hints before the first commit +Subject: [PATCH 12/40] Client: Set XdgShell size hints before the first commit propagateSizeHints is only called in QWindow we have platform window and minimumSizeHint is then sent. We also need to send existing hints when diff --git a/SOURCES/0012-Fix-memory-leak-in-QWaylandGLContext.patch b/SOURCES/0012-Fix-memory-leak-in-QWaylandGLContext.patch deleted file mode 100644 index de5ffe3..0000000 --- a/SOURCES/0012-Fix-memory-leak-in-QWaylandGLContext.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 9df11e79b46c77d8c83f765b2a8e85b639fd55a2 Mon Sep 17 00:00:00 2001 -From: Eskil Abrahamsen Blomfeldt -Date: Tue, 5 Jan 2021 09:08:50 +0100 -Subject: [PATCH 12/52] Fix memory leak in QWaylandGLContext - -We were leaking an EGL context with every GL context created, -which lead to rapid OOM errors in stress tests. - -[ChangeLog][Qt Wayland Client] Fixed a memory leak when creating -QOpenGLContexts on Wayland and using the wayland-egl backend. - -Fixes: QTBUG-85608 -Pick-to: 5.15 -Pick-to: 6.0 -Change-Id: I8426b5df36ec7ab9e66ce15f9e02edad3aca60b9 -Reviewed-by: David Edmundson ---- - .../client/wayland-egl/qwaylandglcontext.cpp | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp -index 681f82f4..befadedc 100644 ---- a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp -+++ b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp -@@ -406,7 +406,9 @@ void QWaylandGLContext::updateGLFormat() - QWaylandGLContext::~QWaylandGLContext() - { - delete m_blitter; -- eglDestroyContext(m_eglDisplay, m_context); -+ m_blitter = nullptr; -+ if (m_decorationsContext != EGL_NO_CONTEXT) -+ eglDestroyContext(eglDisplay(), m_decorationsContext); - } - - bool QWaylandGLContext::makeCurrent(QPlatformSurface *surface) --- -2.35.1 - diff --git a/SOURCES/0013-Client-Send-set_window_geometry-only-once-configured.patch b/SOURCES/0013-Client-Send-set_window_geometry-only-once-configured.patch deleted file mode 100644 index 14e7898..0000000 --- a/SOURCES/0013-Client-Send-set_window_geometry-only-once-configured.patch +++ /dev/null @@ -1,41 +0,0 @@ -From 7db4f83c39d2a0c709bc0b9c0de3946d3b4ebfd5 Mon Sep 17 00:00:00 2001 -From: David Edmundson -Date: Mon, 16 Nov 2020 14:57:36 +0000 -Subject: [PATCH 13/52] Client: Send set_window_geometry only once configured - -The geometry only makes sense when a buffer exists, our currently send -value is somewhat meaningless, but till now harmless. - -A specification clarification implies that it is an error if the -calculated effective window geometry is null, rather than just checking -the sent value. This is the case if set_window_geometry is sent before a -buffer is attached. - -On our first configure call we enter resizeFromApplyConfigure which will -hit this path and send the initial state. - -Pick-to: 5.15 -Pick-to: 6.1 -Pick-to: 6.0 -Change-Id: Ib57ebe8b64210eae86e79dfdd6b5cb8a986b020b -Reviewed-by: Eskil Abrahamsen Blomfeldt ---- - src/client/qwaylandwindow.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp -index 9b343702..e875af3a 100644 ---- a/src/client/qwaylandwindow.cpp -+++ b/src/client/qwaylandwindow.cpp -@@ -365,7 +365,7 @@ void QWaylandWindow::setGeometry(const QRect &rect) - if (isExposed() && !mInResizeFromApplyConfigure && exposeGeometry != mLastExposeGeometry) - sendExposeEvent(exposeGeometry); - -- if (mShellSurface) -+ if (mShellSurface && isExposed()) - mShellSurface->setWindowGeometry(windowContentGeometry()); - - if (isOpaque() && mMask.isEmpty()) --- -2.35.1 - diff --git a/SOURCES/0026-Fix-build.patch b/SOURCES/0013-Fix-build.patch similarity index 94% rename from SOURCES/0026-Fix-build.patch rename to SOURCES/0013-Fix-build.patch index 3060032..d69114b 100644 --- a/SOURCES/0026-Fix-build.patch +++ b/SOURCES/0013-Fix-build.patch @@ -1,7 +1,7 @@ -From a8ddf1a7296e2d28b36231a391807226a7329ae4 Mon Sep 17 00:00:00 2001 +From 2e8e8b87d800f1ef2e0fb0a6f0818de0a8fa0951 Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Mon, 14 Jun 2021 12:45:37 +0100 -Subject: [PATCH 26/52] Fix build +Subject: [PATCH 13/40] Fix build 1b5e43a593e917610e6245f7a272ac081c508ba4 relied on a patch that we can't backport. diff --git a/SOURCES/0027-Fix-remove-listener.patch b/SOURCES/0014-Fix-remove-listener.patch similarity index 91% rename from SOURCES/0027-Fix-remove-listener.patch rename to SOURCES/0014-Fix-remove-listener.patch index 81bc6c6..f95a3bb 100644 --- a/SOURCES/0027-Fix-remove-listener.patch +++ b/SOURCES/0014-Fix-remove-listener.patch @@ -1,7 +1,7 @@ -From d1c4a459faa1d514026c4834828cb33024ac2ceb Mon Sep 17 00:00:00 2001 +From 88b2e6c9728d01a9aa334026629fbb1ce85fe197 Mon Sep 17 00:00:00 2001 From: Zhang Liang Date: Mon, 1 Feb 2021 19:29:43 +0800 -Subject: [PATCH 27/52] Fix: remove listener +Subject: [PATCH 14/40] Fix: remove listener Add the operation for removing the listener form listener list diff --git a/SOURCES/0028-Hook-up-queryKeyboardModifers.patch b/SOURCES/0015-Hook-up-queryKeyboardModifers.patch similarity index 93% rename from SOURCES/0028-Hook-up-queryKeyboardModifers.patch rename to SOURCES/0015-Hook-up-queryKeyboardModifers.patch index 1b343d2..46b5c11 100644 --- a/SOURCES/0028-Hook-up-queryKeyboardModifers.patch +++ b/SOURCES/0015-Hook-up-queryKeyboardModifers.patch @@ -1,7 +1,7 @@ -From a6476d1a1c78eb7f17408241b268404e27b3e161 Mon Sep 17 00:00:00 2001 +From 75693b47dcac101f74f98e5902c4c6b39d407e4f Mon Sep 17 00:00:00 2001 From: David Redondo Date: Wed, 26 May 2021 14:49:40 +0200 -Subject: [PATCH 28/52] Hook up queryKeyboardModifers +Subject: [PATCH 15/40] Hook up queryKeyboardModifers Can be useful when upon enter a modifiers event is received but no key event so no QKeyEvent is generated. diff --git a/SOURCES/0029-Do-not-update-the-mask-if-we-do-not-have-a-surface.patch b/SOURCES/0016-Do-not-update-the-mask-if-we-do-not-have-a-surface.patch similarity index 90% rename from SOURCES/0029-Do-not-update-the-mask-if-we-do-not-have-a-surface.patch rename to SOURCES/0016-Do-not-update-the-mask-if-we-do-not-have-a-surface.patch index 2185388..12085f8 100644 --- a/SOURCES/0029-Do-not-update-the-mask-if-we-do-not-have-a-surface.patch +++ b/SOURCES/0016-Do-not-update-the-mask-if-we-do-not-have-a-surface.patch @@ -1,7 +1,7 @@ -From d4c41797b61a5a8da47c5821711aca72e756dcbf Mon Sep 17 00:00:00 2001 +From 537c5d43941d26d89ebf00f6abf7f12f9bac1caf Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Tue, 13 Jul 2021 13:32:15 +0200 -Subject: [PATCH 29/52] Do not update the mask if we do not have a surface +Subject: [PATCH 16/40] Do not update the mask if we do not have a surface mMask serves as a cache to remember what we've sent, the source of truth for the value is window()->mask(). diff --git a/SOURCES/0030-Correctly-detect-if-image-format-is-supported-by-QIm.patch b/SOURCES/0017-Correctly-detect-if-image-format-is-supported-by-QIm.patch similarity index 95% rename from SOURCES/0030-Correctly-detect-if-image-format-is-supported-by-QIm.patch rename to SOURCES/0017-Correctly-detect-if-image-format-is-supported-by-QIm.patch index 28f0d1a..c6b939a 100644 --- a/SOURCES/0030-Correctly-detect-if-image-format-is-supported-by-QIm.patch +++ b/SOURCES/0017-Correctly-detect-if-image-format-is-supported-by-QIm.patch @@ -1,7 +1,7 @@ -From 3c420cd180397e3f42c8a436a7f1b11465925bdd Mon Sep 17 00:00:00 2001 +From ae3ea8875b9475532e5779154e3992affe2b9a32 Mon Sep 17 00:00:00 2001 From: Jan Blackquill Date: Tue, 24 Aug 2021 14:36:34 -0400 -Subject: [PATCH 30/52] Correctly detect if image format is supported by +Subject: [PATCH 17/40] Correctly detect if image format is supported by QImageWriter The code queries potential image formats by stripping a mimetype of its diff --git a/SOURCES/0018-Fix-compilation.patch b/SOURCES/0018-Fix-compilation.patch deleted file mode 100644 index 742d1d6..0000000 --- a/SOURCES/0018-Fix-compilation.patch +++ /dev/null @@ -1,26 +0,0 @@ -From 2f84a874da064069461284db1da36dc818949ec1 Mon Sep 17 00:00:00 2001 -From: Albert Astals Cid -Date: Sat, 10 Apr 2021 12:10:16 +0200 -Subject: [PATCH 18/52] Fix compilation - -9df11e79b46c77d8c83f765b2a8e85b639fd55a2 can't be backported 1:1 ---- - .../client/wayland-egl/qwaylandglcontext.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp -index befadedc..95d1049c 100644 ---- a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp -+++ b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp -@@ -408,7 +408,7 @@ QWaylandGLContext::~QWaylandGLContext() - delete m_blitter; - m_blitter = nullptr; - if (m_decorationsContext != EGL_NO_CONTEXT) -- eglDestroyContext(eglDisplay(), m_decorationsContext); -+ eglDestroyContext(m_eglDisplay, m_decorationsContext); - } - - bool QWaylandGLContext::makeCurrent(QPlatformSurface *surface) --- -2.35.1 - diff --git a/SOURCES/0031-Wayland-client-Fix-crash-when-windows-are-shown-hidd.patch b/SOURCES/0018-Wayland-client-Fix-crash-when-windows-are-shown-hidd.patch similarity index 89% rename from SOURCES/0031-Wayland-client-Fix-crash-when-windows-are-shown-hidd.patch rename to SOURCES/0018-Wayland-client-Fix-crash-when-windows-are-shown-hidd.patch index 4712de9..386de42 100644 --- a/SOURCES/0031-Wayland-client-Fix-crash-when-windows-are-shown-hidd.patch +++ b/SOURCES/0018-Wayland-client-Fix-crash-when-windows-are-shown-hidd.patch @@ -1,7 +1,7 @@ -From 1c53ba6dfebbf1d6e87c9ad1f2bbda94e3d45bf7 Mon Sep 17 00:00:00 2001 +From 8d673fe2edebe2c5bf338a779ef22ae212dc244a Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Tue, 14 Sep 2021 11:56:23 +0200 -Subject: [PATCH 31/52] Wayland client: Fix crash when windows are shown/hidden +Subject: [PATCH 18/40] Wayland client: Fix crash when windows are shown/hidden during drag Fixes: QTBUG-87624 diff --git a/SOURCES/0032-Client-Don-t-always-recreate-frame-callbacks.patch b/SOURCES/0019-Client-Don-t-always-recreate-frame-callbacks.patch similarity index 96% rename from SOURCES/0032-Client-Don-t-always-recreate-frame-callbacks.patch rename to SOURCES/0019-Client-Don-t-always-recreate-frame-callbacks.patch index 372aae2..1c8bd50 100644 --- a/SOURCES/0032-Client-Don-t-always-recreate-frame-callbacks.patch +++ b/SOURCES/0019-Client-Don-t-always-recreate-frame-callbacks.patch @@ -1,7 +1,7 @@ -From 3be586cd8b6c8313cb6b8b7d61be17706f79590e Mon Sep 17 00:00:00 2001 +From bdd2dacf2d8668b3a1f59db3c6cc859f95868eb2 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Thu, 27 May 2021 19:55:04 -0300 -Subject: [PATCH 32/52] Client: Don't always recreate frame callbacks +Subject: [PATCH 19/40] Client: Don't always recreate frame callbacks The main QWaylandWindow method that is executed when handling updates is QWaylandWindow::handleUpdate(). This method always, unconditionally queues diff --git a/SOURCES/0033-Client-Always-destroy-frame-callback-in-the-actual-c.patch b/SOURCES/0020-Client-Always-destroy-frame-callback-in-the-actual-c.patch similarity index 94% rename from SOURCES/0033-Client-Always-destroy-frame-callback-in-the-actual-c.patch rename to SOURCES/0020-Client-Always-destroy-frame-callback-in-the-actual-c.patch index 8b84cb0..72c6c8d 100644 --- a/SOURCES/0033-Client-Always-destroy-frame-callback-in-the-actual-c.patch +++ b/SOURCES/0020-Client-Always-destroy-frame-callback-in-the-actual-c.patch @@ -1,7 +1,7 @@ -From efe6edcaf8eba601dff99ec6ad4457c8a4442f86 Mon Sep 17 00:00:00 2001 +From fb0a5265ec9d83b56563769cc1b756aeca42ce65 Mon Sep 17 00:00:00 2001 From: Georges Basile Stavracas Neto Date: Thu, 27 May 2021 20:02:53 -0300 -Subject: [PATCH 33/52] Client: Always destroy frame callback in the actual +Subject: [PATCH 20/40] Client: Always destroy frame callback in the actual callback It's good hygiene to destroy all frame callbacks. Destroy the diff --git a/SOURCES/0034-Fix-the-logic-for-decoding-modifiers-map-in-Wayland-.patch b/SOURCES/0021-Fix-the-logic-for-decoding-modifiers-map-in-Wayland-.patch similarity index 91% rename from SOURCES/0034-Fix-the-logic-for-decoding-modifiers-map-in-Wayland-.patch rename to SOURCES/0021-Fix-the-logic-for-decoding-modifiers-map-in-Wayland-.patch index b97bcf7..958be61 100644 --- a/SOURCES/0034-Fix-the-logic-for-decoding-modifiers-map-in-Wayland-.patch +++ b/SOURCES/0021-Fix-the-logic-for-decoding-modifiers-map-in-Wayland-.patch @@ -1,7 +1,7 @@ -From 02f9585ca19c17ae0978b864195533dc527d825e Mon Sep 17 00:00:00 2001 +From 1e0519c6465335dd380ad8d8209969c71eb78d48 Mon Sep 17 00:00:00 2001 From: Rodney Dawes Date: Fri, 15 Oct 2021 12:55:33 -0400 -Subject: [PATCH 34/52] Fix the logic for decoding modifiers map in Wayland +Subject: [PATCH 21/40] Fix the logic for decoding modifiers map in Wayland text input protocol Correctly check for the flags in the modifiers map when we get it from diff --git a/SOURCES/0035-Wayland-client-use-wl_keyboard-to-determine-active-s.patch b/SOURCES/0022-Wayland-client-use-wl_keyboard-to-determine-active-s.patch similarity index 99% rename from SOURCES/0035-Wayland-client-use-wl_keyboard-to-determine-active-s.patch rename to SOURCES/0022-Wayland-client-use-wl_keyboard-to-determine-active-s.patch index 49bf2e0..73d79fb 100644 --- a/SOURCES/0035-Wayland-client-use-wl_keyboard-to-determine-active-s.patch +++ b/SOURCES/0022-Wayland-client-use-wl_keyboard-to-determine-active-s.patch @@ -1,7 +1,7 @@ -From 5c180bdc1042e7cb1555e188051f09e219b00ec9 Mon Sep 17 00:00:00 2001 +From 64e133f830ce48b6732397325b768ed9193c2cb4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?M=C3=A9ven=20Car?= Date: Wed, 18 Aug 2021 18:28:20 +0200 -Subject: [PATCH 35/52] Wayland client: use wl_keyboard to determine active +Subject: [PATCH 22/40] Wayland client: use wl_keyboard to determine active state Commit f497a5bb87270174b8e0106b7eca1992d44ff15d made QWaylandDisplay diff --git a/SOURCES/0036-Client-do-not-empty-clipboard-when-a-new-popup-windo.patch b/SOURCES/0023-Client-do-not-empty-clipboard-when-a-new-popup-windo.patch similarity index 95% rename from SOURCES/0036-Client-do-not-empty-clipboard-when-a-new-popup-windo.patch rename to SOURCES/0023-Client-do-not-empty-clipboard-when-a-new-popup-windo.patch index c241a1b..1ee617a 100644 --- a/SOURCES/0036-Client-do-not-empty-clipboard-when-a-new-popup-windo.patch +++ b/SOURCES/0023-Client-do-not-empty-clipboard-when-a-new-popup-windo.patch @@ -1,7 +1,7 @@ -From 992833ca741efe8f533c61abfaf129a1d8bfcfee Mon Sep 17 00:00:00 2001 +From 167a89d23d4db6f62ef8336002fe306829604a77 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Fri, 16 Jul 2021 13:00:03 +0200 -Subject: [PATCH 36/52] Client: do not empty clipboard when a new popup/window +Subject: [PATCH 23/40] Client: do not empty clipboard when a new popup/window is opened If we open a new popup or a window within the same app we have to avoid diff --git a/SOURCES/0038-Set-preedit-cursor-when-cursor-equals-to-0.patch b/SOURCES/0024-Set-preedit-cursor-when-cursor-equals-to-0.patch similarity index 89% rename from SOURCES/0038-Set-preedit-cursor-when-cursor-equals-to-0.patch rename to SOURCES/0024-Set-preedit-cursor-when-cursor-equals-to-0.patch index fe6674a..454f6dd 100644 --- a/SOURCES/0038-Set-preedit-cursor-when-cursor-equals-to-0.patch +++ b/SOURCES/0024-Set-preedit-cursor-when-cursor-equals-to-0.patch @@ -1,7 +1,7 @@ -From e0646f531e1e73a90a93faaa45d933ae40769985 Mon Sep 17 00:00:00 2001 +From 5ea11ccde21448f5c61978bf52e2f3db79a7143c Mon Sep 17 00:00:00 2001 From: Weng Xuetian Date: Sat, 18 Dec 2021 23:42:49 -0800 -Subject: [PATCH 38/52] Set preedit cursor when cursor equals to 0 +Subject: [PATCH 24/40] Set preedit cursor when cursor equals to 0 Pick-to: 6.3 6.2 5.15 Change-Id: I832fbb22d973b36ac4ab51570fc53bc2e4c3ed58 diff --git a/SOURCES/0039-Client-Implement-DataDeviceV3.patch b/SOURCES/0025-Client-Implement-DataDeviceV3.patch similarity index 99% rename from SOURCES/0039-Client-Implement-DataDeviceV3.patch rename to SOURCES/0025-Client-Implement-DataDeviceV3.patch index 9bd9a7b..42245c2 100644 --- a/SOURCES/0039-Client-Implement-DataDeviceV3.patch +++ b/SOURCES/0025-Client-Implement-DataDeviceV3.patch @@ -1,7 +1,7 @@ -From 2044603ebb5ae70c785d50968ac620b842c2b14e Mon Sep 17 00:00:00 2001 +From 95783492ae8df7f84c3c13351df5dc114288e96e Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Tue, 16 Feb 2021 09:51:47 +0000 -Subject: [PATCH 39/52] Client: Implement DataDeviceV3 +Subject: [PATCH 25/40] Client: Implement DataDeviceV3 DataDeviceV2 fixes a leak of DataDevice resources. diff --git a/SOURCES/0040-Client-Delay-deletion-of-QDrag-object-until-after-we.patch b/SOURCES/0026-Client-Delay-deletion-of-QDrag-object-until-after-we.patch similarity index 94% rename from SOURCES/0040-Client-Delay-deletion-of-QDrag-object-until-after-we.patch rename to SOURCES/0026-Client-Delay-deletion-of-QDrag-object-until-after-we.patch index b6ddb34..fb1cffa 100644 --- a/SOURCES/0040-Client-Delay-deletion-of-QDrag-object-until-after-we.patch +++ b/SOURCES/0026-Client-Delay-deletion-of-QDrag-object-until-after-we.patch @@ -1,7 +1,7 @@ -From 0b15df7e9e26a4edfc2277eb3ec7b3d5c58a5dcd Mon Sep 17 00:00:00 2001 +From 8c9e148bb0aa25cbc831e2bd931d3bd54bc0fb46 Mon Sep 17 00:00:00 2001 From: Arjen Hiemstra Date: Thu, 18 Nov 2021 13:05:30 +0100 -Subject: [PATCH 40/52] Client: Delay deletion of QDrag object until after +Subject: [PATCH 26/40] Client: Delay deletion of QDrag object until after we're done with it In certain cases, most notably when performing drag and drop operations diff --git a/SOURCES/0041-Client-Avoid-processing-of-events-when-showing-windo.patch b/SOURCES/0027-Client-Avoid-processing-of-events-when-showing-windo.patch similarity index 91% rename from SOURCES/0041-Client-Avoid-processing-of-events-when-showing-windo.patch rename to SOURCES/0027-Client-Avoid-processing-of-events-when-showing-windo.patch index d57e9b6..ea7bb59 100644 --- a/SOURCES/0041-Client-Avoid-processing-of-events-when-showing-windo.patch +++ b/SOURCES/0027-Client-Avoid-processing-of-events-when-showing-windo.patch @@ -1,7 +1,7 @@ -From 867540b9d913760a847ff67c8694d817c821f2c2 Mon Sep 17 00:00:00 2001 +From b736b4488dcaa1a3c6b0c6059e5b85881f74c52b Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Sun, 14 Nov 2021 13:54:19 +0000 -Subject: [PATCH 41/52] Client: Avoid processing of events when showing windows +Subject: [PATCH 27/40] Client: Avoid processing of events when showing windows The only time we want to dispatch events from the wayland socket is when the application is waiting for external events. Doing so at any other diff --git a/SOURCES/0042-Handle-registry_global-out-of-constructor.patch b/SOURCES/0028-Handle-registry_global-out-of-constructor.patch similarity index 95% rename from SOURCES/0042-Handle-registry_global-out-of-constructor.patch rename to SOURCES/0028-Handle-registry_global-out-of-constructor.patch index 9a4321b..a7dc153 100644 --- a/SOURCES/0042-Handle-registry_global-out-of-constructor.patch +++ b/SOURCES/0028-Handle-registry_global-out-of-constructor.patch @@ -1,7 +1,7 @@ -From bc5a8d24f63181a36759723a4d1b39b59b3b53e6 Mon Sep 17 00:00:00 2001 +From 771705eee02b4d752beee22ef5408ccbd72078cc Mon Sep 17 00:00:00 2001 From: Elvis Lee Date: Thu, 18 Feb 2021 15:45:49 +0900 -Subject: [PATCH 42/52] Handle registry_global out of constructor +Subject: [PATCH 28/40] Handle registry_global out of constructor Factory functions in QWaylandDisplay::registry_global() can be overridden. Later, other classes instantiated in the registry_global can support diff --git a/SOURCES/0043-Connect-flushRequest-after-forceRoundTrip.patch b/SOURCES/0029-Connect-flushRequest-after-forceRoundTrip.patch similarity index 94% rename from SOURCES/0043-Connect-flushRequest-after-forceRoundTrip.patch rename to SOURCES/0029-Connect-flushRequest-after-forceRoundTrip.patch index ccfe47f..7a09ad3 100644 --- a/SOURCES/0043-Connect-flushRequest-after-forceRoundTrip.patch +++ b/SOURCES/0029-Connect-flushRequest-after-forceRoundTrip.patch @@ -1,7 +1,7 @@ -From 98dc33fdc66f15a0e69f3024fcef046f11adc58c Mon Sep 17 00:00:00 2001 +From 725c5de6bdd528d1fa03f1de5ec91585eb110d83 Mon Sep 17 00:00:00 2001 From: Elvis Lee Date: Wed, 17 Mar 2021 16:31:10 +0900 -Subject: [PATCH 43/52] Connect flushRequest after forceRoundTrip +Subject: [PATCH 29/40] Connect flushRequest after forceRoundTrip If flushRequest is connected with aboutToBlock, the flushRequest may consumes all events so that processEvents might be blocked in forceRoundTrip. diff --git a/SOURCES/0044-Move-the-wayland-socket-polling-to-a-separate-event-.patch b/SOURCES/0030-Move-the-wayland-socket-polling-to-a-separate-event-.patch similarity index 99% rename from SOURCES/0044-Move-the-wayland-socket-polling-to-a-separate-event-.patch rename to SOURCES/0030-Move-the-wayland-socket-polling-to-a-separate-event-.patch index d9d31dd..c71b532 100644 --- a/SOURCES/0044-Move-the-wayland-socket-polling-to-a-separate-event-.patch +++ b/SOURCES/0030-Move-the-wayland-socket-polling-to-a-separate-event-.patch @@ -1,7 +1,7 @@ -From 4644d51f4b52e83fc1b4d02b380d80d9d57e76fa Mon Sep 17 00:00:00 2001 +From 91d36a2497f3289996d788c8974583bccac3c842 Mon Sep 17 00:00:00 2001 From: Adrien Faveraux Date: Fri, 26 Nov 2021 09:18:58 +0100 -Subject: [PATCH 44/52] Move the wayland socket polling to a separate event +Subject: [PATCH 30/40] Move the wayland socket polling to a separate event thread New event threads is introduced which calls poll() on the wayland fd, diff --git a/SOURCES/0045-Check-pointer-for-null-before-use-in-ASSERT.patch b/SOURCES/0031-Check-pointer-for-null-before-use-in-ASSERT.patch similarity index 87% rename from SOURCES/0045-Check-pointer-for-null-before-use-in-ASSERT.patch rename to SOURCES/0031-Check-pointer-for-null-before-use-in-ASSERT.patch index 654b43c..062cab9 100644 --- a/SOURCES/0045-Check-pointer-for-null-before-use-in-ASSERT.patch +++ b/SOURCES/0031-Check-pointer-for-null-before-use-in-ASSERT.patch @@ -1,7 +1,7 @@ -From 460a2bb54d8377586dff6d561646f3929c71370d Mon Sep 17 00:00:00 2001 +From ca1d9023b6d40a128faad652f02881b5805e36ba Mon Sep 17 00:00:00 2001 From: Roman Genkhel Date: Thu, 12 Nov 2020 12:21:51 +0300 -Subject: [PATCH 45/52] Check pointer for null before use in ASSERT +Subject: [PATCH 31/40] Check pointer for null before use in ASSERT Task-number: QTBUG-85195 Change-Id: I331e54f6e58aa9d536351a55223610c60b3cb414 diff --git a/SOURCES/0046-Do-not-create-decorations-when-the-shellSurface-is-n.patch b/SOURCES/0032-Do-not-create-decorations-when-the-shellSurface-is-n.patch similarity index 90% rename from SOURCES/0046-Do-not-create-decorations-when-the-shellSurface-is-n.patch rename to SOURCES/0032-Do-not-create-decorations-when-the-shellSurface-is-n.patch index 0d2977b..80acb5d 100644 --- a/SOURCES/0046-Do-not-create-decorations-when-the-shellSurface-is-n.patch +++ b/SOURCES/0032-Do-not-create-decorations-when-the-shellSurface-is-n.patch @@ -1,7 +1,7 @@ -From b6d85c2a75f5618e87267f5b5c361455be257a17 Mon Sep 17 00:00:00 2001 +From e6b30f42f8eec2ecc10395593dbfff354acd5425 Mon Sep 17 00:00:00 2001 From: Inho Lee Date: Mon, 1 Nov 2021 14:23:58 +0100 -Subject: [PATCH 46/52] Do not create decorations when the shellSurface is not +Subject: [PATCH 32/40] Do not create decorations when the shellSurface is not ready A cases reported that client windows try to make decorations diff --git a/SOURCES/0047-Use-wl_surface.damage_buffer-on-the-client-side.patch b/SOURCES/0033-Use-wl_surface.damage_buffer-on-the-client-side.patch similarity index 97% rename from SOURCES/0047-Use-wl_surface.damage_buffer-on-the-client-side.patch rename to SOURCES/0033-Use-wl_surface.damage_buffer-on-the-client-side.patch index 0b4c8fc..145ec94 100644 --- a/SOURCES/0047-Use-wl_surface.damage_buffer-on-the-client-side.patch +++ b/SOURCES/0033-Use-wl_surface.damage_buffer-on-the-client-side.patch @@ -1,7 +1,7 @@ -From 7200a1ad8488f157ef8ce9d5ed81a0a1c1cd1eda Mon Sep 17 00:00:00 2001 +From 3027c9659866101c06252829d99e7597cef19a40 Mon Sep 17 00:00:00 2001 From: Paul Olav Tvete Date: Mon, 6 Jul 2020 14:37:35 +0200 -Subject: [PATCH 47/52] Use wl_surface.damage_buffer on the client side +Subject: [PATCH 33/40] Use wl_surface.damage_buffer on the client side Prefer the newer, recommended damage_buffer when the compositor supports it. diff --git a/SOURCES/0048-Fix-crash-if-no-input-method-module-could-be-loaded.patch b/SOURCES/0034-Fix-crash-if-no-input-method-module-could-be-loaded.patch similarity index 88% rename from SOURCES/0048-Fix-crash-if-no-input-method-module-could-be-loaded.patch rename to SOURCES/0034-Fix-crash-if-no-input-method-module-could-be-loaded.patch index b61e664..00f389c 100644 --- a/SOURCES/0048-Fix-crash-if-no-input-method-module-could-be-loaded.patch +++ b/SOURCES/0034-Fix-crash-if-no-input-method-module-could-be-loaded.patch @@ -1,7 +1,7 @@ -From ce2caf493a1343fbd9f8e4c85baf6a61c057f242 Mon Sep 17 00:00:00 2001 +From 297c4e075068bffe4a396b2553afc4798c97fb4c Mon Sep 17 00:00:00 2001 From: Joni Poikelin Date: Thu, 3 Feb 2022 14:01:50 +0200 -Subject: [PATCH 48/52] Fix crash if no input method module could be loaded +Subject: [PATCH 34/40] Fix crash if no input method module could be loaded Pick-to: 6.2 6.3 5.15 Change-Id: I8f346def616606a6c5540856bd08a84ee7ed5ca2 diff --git a/SOURCES/0049-Client-Remove-mWaitingForUpdateDelivery.patch b/SOURCES/0035-Client-Remove-mWaitingForUpdateDelivery.patch similarity index 96% rename from SOURCES/0049-Client-Remove-mWaitingForUpdateDelivery.patch rename to SOURCES/0035-Client-Remove-mWaitingForUpdateDelivery.patch index abec7f5..7e3e1df 100644 --- a/SOURCES/0049-Client-Remove-mWaitingForUpdateDelivery.patch +++ b/SOURCES/0035-Client-Remove-mWaitingForUpdateDelivery.patch @@ -1,7 +1,7 @@ -From 214f7ab9d3384a4123f14d9f6cd0205cf0aaa794 Mon Sep 17 00:00:00 2001 +From a97759d032a40045551546ca17300891d4067ee4 Mon Sep 17 00:00:00 2001 From: Vlad Zahorodnii Date: Tue, 1 Feb 2022 13:05:36 +0200 -Subject: [PATCH 49/52] Client: Remove mWaitingForUpdateDelivery +Subject: [PATCH 35/40] Client: Remove mWaitingForUpdateDelivery Currently, mWaitingForUpdateDelivery is shared between the main thread (doHandleFrameCallback()) and the frame callback event thread diff --git a/SOURCES/0050-Cursor-position-0-should-still-show-the-cursor.patch b/SOURCES/0036-Cursor-position-0-should-still-show-the-cursor.patch similarity index 90% rename from SOURCES/0050-Cursor-position-0-should-still-show-the-cursor.patch rename to SOURCES/0036-Cursor-position-0-should-still-show-the-cursor.patch index 245a0f5..61a0d54 100644 --- a/SOURCES/0050-Cursor-position-0-should-still-show-the-cursor.patch +++ b/SOURCES/0036-Cursor-position-0-should-still-show-the-cursor.patch @@ -1,7 +1,7 @@ -From 157c7f55005a6ef0e65ebb02f9b5f344848670b2 Mon Sep 17 00:00:00 2001 +From d3b794920d643fc5d722f63ad52b91e8143c0de0 Mon Sep 17 00:00:00 2001 From: Weng Xuetian Date: Tue, 8 Feb 2022 07:11:25 -0800 -Subject: [PATCH 50/52] Cursor position == 0 should still show the cursor +Subject: [PATCH 36/40] Cursor position == 0 should still show the cursor Otherwise the cursor would be hidden even if preedit is empty. Amends 719a55be13bdadfa659a732755f280e276a894bd diff --git a/SOURCES/0037-Fix-backport-context-destruction-was-omitted.patch b/SOURCES/0037-Fix-backport-context-destruction-was-omitted.patch deleted file mode 100644 index 1966252..0000000 --- a/SOURCES/0037-Fix-backport-context-destruction-was-omitted.patch +++ /dev/null @@ -1,29 +0,0 @@ -From eb422ab5e07498a7a8d086f6a942ee35ab3c9776 Mon Sep 17 00:00:00 2001 -From: Aleix Pol -Date: Thu, 9 Dec 2021 17:35:24 +0100 -Subject: [PATCH 37/52] Fix backport, context destruction was omitted - -When cherry-picking for 9df11e79b46c77d8c83f765b2a8e85b639fd55a2, this -line got removed when rebasing the patch, which created a leak. - -BUG: 442844 -Change-Id: Id00e8b194dcd910c5f01ce9d2cc318f96a4129a2 ---- - src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp -index 95d1049c..683fe123 100644 ---- a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp -+++ b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp -@@ -407,6 +407,7 @@ QWaylandGLContext::~QWaylandGLContext() - { - delete m_blitter; - m_blitter = nullptr; -+ eglDestroyContext(m_eglDisplay, m_context); - if (m_decorationsContext != EGL_NO_CONTEXT) - eglDestroyContext(m_eglDisplay, m_decorationsContext); - } --- -2.35.1 - diff --git a/SOURCES/0051-Update-the-preedit-styling-mapping.patch b/SOURCES/0037-Update-the-preedit-styling-mapping.patch similarity index 96% rename from SOURCES/0051-Update-the-preedit-styling-mapping.patch rename to SOURCES/0037-Update-the-preedit-styling-mapping.patch index beb6038..b99a32e 100644 --- a/SOURCES/0051-Update-the-preedit-styling-mapping.patch +++ b/SOURCES/0037-Update-the-preedit-styling-mapping.patch @@ -1,7 +1,7 @@ -From 9f66cd3784421ee5dc6538630ade0cf215f656aa Mon Sep 17 00:00:00 2001 +From 3ddd4dcb1790920ce2598ebdbe14c95bdba55005 Mon Sep 17 00:00:00 2001 From: Weng Xuetian Date: Wed, 22 Dec 2021 10:42:38 -0800 -Subject: [PATCH 51/52] Update the preedit styling mapping +Subject: [PATCH 37/40] Update the preedit styling mapping - None mapping to no style. - Default/Underline mapping to underline. diff --git a/SOURCES/0052-client-Simplify-round-trip-behavior.patch b/SOURCES/0038-client-Simplify-round-trip-behavior.patch similarity index 95% rename from SOURCES/0052-client-Simplify-round-trip-behavior.patch rename to SOURCES/0038-client-Simplify-round-trip-behavior.patch index 4d8732a..de16fc0 100644 --- a/SOURCES/0052-client-Simplify-round-trip-behavior.patch +++ b/SOURCES/0038-client-Simplify-round-trip-behavior.patch @@ -1,7 +1,7 @@ -From d6a6b727832819d118199f7016c2c401663ee370 Mon Sep 17 00:00:00 2001 +From 971dbf2d5be743ddeb998f7461ff3e06ccb892c4 Mon Sep 17 00:00:00 2001 From: David Edmundson Date: Wed, 9 Feb 2022 17:20:48 +0000 -Subject: [PATCH 52/52] client: Simplify round trip behavior +Subject: [PATCH 38/40] client: Simplify round trip behavior The custom event queue was removed in 302d4ffb8549214eb4028dc3e47ec4ee4e12ffbd (2015) so the comment about not diff --git a/SOURCES/0039-Client-Fix-opaque-region-setter.patch b/SOURCES/0039-Client-Fix-opaque-region-setter.patch new file mode 100644 index 0000000..8aa426a --- /dev/null +++ b/SOURCES/0039-Client-Fix-opaque-region-setter.patch @@ -0,0 +1,31 @@ +From 9930ed9942d2d26211195571673bea35261ad26b Mon Sep 17 00:00:00 2001 +From: Vlad Zahorodnii +Date: Sat, 19 Feb 2022 17:01:04 +0200 +Subject: [PATCH 39/40] Client: Fix opaque region setter + +The rect is in the global coordinate system, while the opaque region +must be in the surface local coordinate system. + +Change-Id: I75042b4d779dfd4dfe610aad1f0387879f11b048 +Reviewed-by: Aleix Pol Gonzalez +(cherry picked from commit f9425f573b18c0b66fd9ad9c2805e8b8b9a3ec77) +--- + src/client/qwaylandwindow.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp +index 949374b1..fee2ecdd 100644 +--- a/src/client/qwaylandwindow.cpp ++++ b/src/client/qwaylandwindow.cpp +@@ -372,7 +372,7 @@ void QWaylandWindow::setGeometry(const QRect &rect) + mShellSurface->setWindowGeometry(windowContentGeometry()); + + if (isOpaque() && mMask.isEmpty()) +- setOpaqueArea(rect); ++ setOpaqueArea(QRect(QPoint(0, 0), rect.size())); + } + + void QWaylandWindow::resizeFromApplyConfigure(const QSize &sizeWithMargins, const QPoint &offset) +-- +2.35.1 + diff --git a/SOURCES/0040-Use-proper-dependencies-in-compile-tests.patch b/SOURCES/0040-Use-proper-dependencies-in-compile-tests.patch new file mode 100644 index 0000000..80cc882 --- /dev/null +++ b/SOURCES/0040-Use-proper-dependencies-in-compile-tests.patch @@ -0,0 +1,126 @@ +From 118674630cdb5933e66a8b4415afe7c716ad4662 Mon Sep 17 00:00:00 2001 +From: Fabian Vogt +Date: Fri, 4 Feb 2022 11:07:36 +0100 +Subject: [PATCH 40/40] Use proper dependencies in compile tests + +Use the dependencies as found by the "libraries" section instead of relying +on them being available in the default location (e.g. "-ldrm"). + +Additionally, VK_USE_PLATFORM_WAYLAND_KHR requires , so +add the wayland-client dependency. + +This fixes those tests if e.g. wayland-client headers need to be found through +pkgconfig. + +This part of the code changed completely in Qt 6, so this is a totally +different patch and not a cherry-pick of 5fc2e1915c3a +("CMake: Fix qtwayland feature detection"). + +Fixes: QTBUG-100475 +--- + src/client/configure.json | 8 ++++---- + src/compositor/configure.json | 34 +++++++++++++++++++++++++++++----- + 2 files changed, 33 insertions(+), 9 deletions(-) + +diff --git a/src/client/configure.json b/src/client/configure.json +index 2f424580..29222357 100644 +--- a/src/client/configure.json ++++ b/src/client/configure.json +@@ -149,8 +149,7 @@ + "#endif" + ] + }, +- "libs": "-ldrm", +- "use": "egl" ++ "use": "drm egl" + }, + "vulkan-server-buffer": { + "label": "Vulkan Buffer Sharing", +@@ -168,7 +167,8 @@ + "exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;", + "return 0;" + ] +- } ++ }, ++ "use": "wayland-client" + }, + "egl_1_5-wayland": { + "label": "EGL 1.5 with Wayland Platform", +@@ -183,7 +183,7 @@ + "eglGetPlatformDisplay(EGL_PLATFORM_WAYLAND_EXT, (struct wl_display *)(nullptr), nullptr);" + ] + }, +- "use": "egl" ++ "use": "egl wayland-client" + } + }, + +diff --git a/src/compositor/configure.json b/src/compositor/configure.json +index bcfd5215..da95d07b 100644 +--- a/src/compositor/configure.json ++++ b/src/compositor/configure.json +@@ -7,6 +7,31 @@ + "testDir": "../../config.tests", + + "libraries": { ++ "wayland-client": { ++ "label": "Wayland client library", ++ "headers": "wayland-version.h", ++ "test": { ++ "main": [ ++ "#if WAYLAND_VERSION_MAJOR < 1", ++ "# error Wayland 1.8.0 or higher required", ++ "#endif", ++ "#if WAYLAND_VERSION_MAJOR == 1", ++ "# if WAYLAND_VERSION_MINOR < 8", ++ "# error Wayland 1.8.0 or higher required", ++ "# endif", ++ "# if WAYLAND_VERSION_MINOR == 8", ++ "# if WAYLAND_VERSION_MICRO < 0", ++ "# error Wayland 1.8.0 or higher required", ++ "# endif", ++ "# endif", ++ "#endif" ++ ] ++ }, ++ "sources": [ ++ { "type": "pkgConfig", "args": "wayland-client" }, ++ "-lwayland-client" ++ ] ++ }, + "wayland-server": { + "label": "wayland-server", + "headers": "wayland-version.h", +@@ -151,8 +176,7 @@ + "#endif" + ] + }, +- "libs": "-ldrm", +- "use": "egl" ++ "use": "drm egl" + }, + "dmabuf-client-buffer": { + "label": "Linux Client dma-buf Buffer Sharing", +@@ -176,8 +200,7 @@ + "return 0;" + ] + }, +- "libs": "-ldrm", +- "use": "egl" ++ "use": "drm egl" + }, + "vulkan-server-buffer": { + "label": "Vulkan Buffer Sharing", +@@ -195,7 +218,8 @@ + "exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;", + "return 0;" + ] +- } ++ }, ++ "use": "wayland-client" + } + }, + +-- +2.35.1 + diff --git a/SOURCES/0041-Client-set-constraint-adjustments-for-popups-in-xdg.patch b/SOURCES/0041-Client-set-constraint-adjustments-for-popups-in-xdg.patch new file mode 100644 index 0000000..4320d76 --- /dev/null +++ b/SOURCES/0041-Client-set-constraint-adjustments-for-popups-in-xdg.patch @@ -0,0 +1,33 @@ +From 48b9dbb4d9d508895f7568531d8f0a7e63261b75 Mon Sep 17 00:00:00 2001 +From: Liang Qi +Date: Tue, 4 Jan 2022 12:30:36 +0100 +Subject: [PATCH] client: set_constraint_adjustment() for popups in xdg + +See also https://cgit.freedesktop.org/wayland/wayland-protocols/tree/stable/xdg-shell/xdg-shell.xml#n234 . + +Kudos to Greg V for his original patch in jira. + +Fixes: QTBUG-87303 +Pick-to: 5.15 6.2 6.3 +Done-with: Greg V +Change-Id: I57df9aedea7cc6f0b6fa142a6fc6c3bdc98324c8 +Reviewed-by: David Edmundson +(cherry picked from commit 59a5fe99e1569421b920d99c5b20cdafcdcf43a9) +diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp +index 1c76294..3b99c4b 100644 +--- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp ++++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp +@@ -410,6 +410,13 @@ void QWaylandXdgSurface::setPopup(QWaylandWindow *parent) + positioner->set_anchor(QtWayland::xdg_positioner::anchor_top_left); + positioner->set_gravity(QtWayland::xdg_positioner::gravity_bottom_right); + positioner->set_size(m_window->geometry().width(), m_window->geometry().height()); ++ const QByteArray currentDesktop = qgetenv("XDG_CURRENT_DESKTOP"); ++ if (currentDesktop != QByteArray("KDE")) { ++ positioner->set_constraint_adjustment(QtWayland::xdg_positioner::constraint_adjustment_slide_x ++ | QtWayland::xdg_positioner::constraint_adjustment_slide_y ++ | QtWayland::xdg_positioner::constraint_adjustment_flip_x ++ | QtWayland::xdg_positioner::constraint_adjustment_flip_y); ++ } + m_popup = new Popup(this, parentXdgSurface, positioner); + positioner->destroy(); + delete positioner; diff --git a/SPECS/qt5-qtwayland.spec b/SPECS/qt5-qtwayland.spec index 4f29dca..bfb884d 100644 --- a/SPECS/qt5-qtwayland.spec +++ b/SPECS/qt5-qtwayland.spec @@ -4,75 +4,63 @@ Summary: Qt5 - Wayland platform support and QtCompositor module Name: qt5-%{qt_module} -Version: 5.15.2 -Release: 15%{?dist} +Version: 5.15.3 +Release: 1%{?dist} License: LGPLv3 Url: http://www.qt.io %global majmin %(echo %{version} | cut -d. -f1-2) -Source0: https://download.qt.io/official_releases/qt/%{majmin}/%{version}/submodules/%{qt_module}-everywhere-src-%{version}.tar.xz +Source0: https://download.qt.io/official_releases/qt/%{majmin}/%{version}/submodules/%{qt_module}-everywhere-opensource-src-%{version}.tar.xz ## Upstream patches ## repo: https://invent.kde.org/qt/qt/qtwayland ## branch: kde/5.15 -## git format-patch v5.15.2 -## These are already included in stock 5.15.2 tarball, referenced here for completeness -#Patch1: 0001-Bump-version.patch -#Patch2: 0002-Replace-remaining-LGPLv3-headers-in-QtWaylandComposi.patch -#Patch3: 0003-Doc-List-correct-license-information-for-the-module.patch -#Patch4: 0004-Add-changes-file-for-Qt-5.15.2.patch -Patch5: 0005-Scanner-Avoid-accessing-dangling-pointers-in-destroy.patch -Patch6: 0006-Make-setting-QT_SCALE_FACTOR-work-on-Wayland.patch -Patch7: 0007-Do-not-try-to-eglMakeCurrent-for-unintended-case.patch -Patch8: 0008-Make-setting-QT_SCALE_FACTOR-work-on-Wayland.patch -Patch9: 0009-Ensure-that-grabbing-is-performed-in-correct-context.patch -Patch10: 0010-Fix-leaked-subsurface-wayland-items.patch -Patch11: 0011-Use-qWarning-and-_exit-instead-of-qFatal-for-wayland.patch -Patch12: 0012-Fix-memory-leak-in-QWaylandGLContext.patch -Patch13: 0013-Client-Send-set_window_geometry-only-once-configured.patch -Patch14: 0014-Translate-opaque-area-with-frame-margins.patch -Patch15: 0015-Client-Send-exposeEvent-to-parent-on-subsurface-posi.patch -Patch16: 0016-Get-correct-decoration-margins-region.patch -Patch17: 0017-xdgshell-Tell-the-compositor-the-screen-we-re-expect.patch -Patch18: 0018-Fix-compilation.patch -Patch19: 0019-client-Allow-QWaylandInputContext-to-accept-composed.patch -Patch20: 0020-Client-Announce-an-output-after-receiving-more-compl.patch -Patch21: 0021-Fix-issue-with-repeated-window-size-changes.patch -Patch22: 0022-Include-locale.h-for-setlocale-LC_CTYPE.patch -Patch23: 0023-Client-Connect-drags-being-accepted-to-updating-the-.patch -Patch24: 0024-Client-Disconnect-registry-listener-on-destruction.patch -Patch25: 0025-Client-Set-XdgShell-size-hints-before-the-first-comm.patch -Patch26: 0026-Fix-build.patch -Patch27: 0027-Fix-remove-listener.patch -Patch28: 0028-Hook-up-queryKeyboardModifers.patch -Patch29: 0029-Do-not-update-the-mask-if-we-do-not-have-a-surface.patch -Patch30: 0030-Correctly-detect-if-image-format-is-supported-by-QIm.patch -Patch31: 0031-Wayland-client-Fix-crash-when-windows-are-shown-hidd.patch -Patch32: 0032-Client-Don-t-always-recreate-frame-callbacks.patch -Patch33: 0033-Client-Always-destroy-frame-callback-in-the-actual-c.patch -Patch34: 0034-Fix-the-logic-for-decoding-modifiers-map-in-Wayland-.patch -Patch35: 0035-Wayland-client-use-wl_keyboard-to-determine-active-s.patch -Patch36: 0036-Client-do-not-empty-clipboard-when-a-new-popup-windo.patch -Patch37: 0037-Fix-backport-context-destruction-was-omitted.patch -Patch38: 0038-Set-preedit-cursor-when-cursor-equals-to-0.patch -Patch39: 0039-Client-Implement-DataDeviceV3.patch -Patch40: 0040-Client-Delay-deletion-of-QDrag-object-until-after-we.patch -Patch41: 0041-Client-Avoid-processing-of-events-when-showing-windo.patch -Patch42: 0042-Handle-registry_global-out-of-constructor.patch -Patch43: 0043-Connect-flushRequest-after-forceRoundTrip.patch -Patch44: 0044-Move-the-wayland-socket-polling-to-a-separate-event-.patch -Patch45: 0045-Check-pointer-for-null-before-use-in-ASSERT.patch -Patch46: 0046-Do-not-create-decorations-when-the-shellSurface-is-n.patch -Patch47: 0047-Use-wl_surface.damage_buffer-on-the-client-side.patch -Patch48: 0048-Fix-crash-if-no-input-method-module-could-be-loaded.patch -Patch49: 0049-Client-Remove-mWaitingForUpdateDelivery.patch -Patch50: 0050-Cursor-position-0-should-still-show-the-cursor.patch -Patch51: 0051-Update-the-preedit-styling-mapping.patch -Patch52: 0052-client-Simplify-round-trip-behavior.patch +## git format-patch v5.15.3-lts-lgpl +Patch1: 0001-Use-qWarning-and-_exit-instead-of-qFatal-for-wayland.patch +Patch2: 0002-Translate-opaque-area-with-frame-margins.patch +Patch3: 0003-Client-Send-exposeEvent-to-parent-on-subsurface-posi.patch +Patch4: 0004-Get-correct-decoration-margins-region.patch +Patch5: 0005-xdgshell-Tell-the-compositor-the-screen-we-re-expect.patch +Patch6: 0006-client-Allow-QWaylandInputContext-to-accept-composed.patch +Patch7: 0007-Client-Announce-an-output-after-receiving-more-compl.patch +Patch8: 0008-Fix-issue-with-repeated-window-size-changes.patch +Patch9: 0009-Include-locale.h-for-setlocale-LC_CTYPE.patch +Patch10: 0010-Client-Connect-drags-being-accepted-to-updating-the-.patch +Patch11: 0011-Client-Disconnect-registry-listener-on-destruction.patch +Patch12: 0012-Client-Set-XdgShell-size-hints-before-the-first-comm.patch +Patch13: 0013-Fix-build.patch +Patch14: 0014-Fix-remove-listener.patch +Patch15: 0015-Hook-up-queryKeyboardModifers.patch +Patch16: 0016-Do-not-update-the-mask-if-we-do-not-have-a-surface.patch +Patch17: 0017-Correctly-detect-if-image-format-is-supported-by-QIm.patch +Patch18: 0018-Wayland-client-Fix-crash-when-windows-are-shown-hidd.patch +Patch19: 0019-Client-Don-t-always-recreate-frame-callbacks.patch +Patch20: 0020-Client-Always-destroy-frame-callback-in-the-actual-c.patch +Patch21: 0021-Fix-the-logic-for-decoding-modifiers-map-in-Wayland-.patch +Patch22: 0022-Wayland-client-use-wl_keyboard-to-determine-active-s.patch +Patch23: 0023-Client-do-not-empty-clipboard-when-a-new-popup-windo.patch +Patch24: 0024-Set-preedit-cursor-when-cursor-equals-to-0.patch +Patch25: 0025-Client-Implement-DataDeviceV3.patch +Patch26: 0026-Client-Delay-deletion-of-QDrag-object-until-after-we.patch +Patch27: 0027-Client-Avoid-processing-of-events-when-showing-windo.patch +Patch28: 0028-Handle-registry_global-out-of-constructor.patch +Patch29: 0029-Connect-flushRequest-after-forceRoundTrip.patch +Patch30: 0030-Move-the-wayland-socket-polling-to-a-separate-event-.patch +Patch31: 0031-Check-pointer-for-null-before-use-in-ASSERT.patch +Patch32: 0032-Do-not-create-decorations-when-the-shellSurface-is-n.patch +Patch33: 0033-Use-wl_surface.damage_buffer-on-the-client-side.patch +Patch34: 0034-Fix-crash-if-no-input-method-module-could-be-loaded.patch +Patch35: 0035-Client-Remove-mWaitingForUpdateDelivery.patch +Patch36: 0036-Cursor-position-0-should-still-show-the-cursor.patch +Patch37: 0037-Update-the-preedit-styling-mapping.patch +Patch38: 0038-client-Simplify-round-trip-behavior.patch +Patch39: 0039-Client-Fix-opaque-region-setter.patch +Patch40: 0040-Use-proper-dependencies-in-compile-tests.patch +Patch41: 0041-Client-set-constraint-adjustments-for-popups-in-xdg.patch # Disable for now, there is a Qt bug making this broken -# Patch52: qtwayland-decoration-support-backports-from-qt6.patch -Patch53: qtwayland-client-expose-toplevel-window-state.patch +# Patch102: qtwayland-decoration-support-backports-from-qt6.patch +Patch103: qtwayland-client-expose-toplevel-window-state.patch # filter qml provides %global __provides_exclude_from ^%{_qt5_archdatadir}/qml/.*\\.so$ @@ -198,6 +186,10 @@ popd %endif %changelog +* Mon Mar 28 2022 Jan Grulich - 5.15.3-1 +- 5.15.3 + Resolves: bz#2061372 + * Tue Feb 15 2022 Jan Grulich - 5.15.2-15 - Sync with Fedora Resolves: bz#2051384