This commit is contained in:
Jan Grulich 2023-06-13 09:07:13 +02:00
parent e28cdd45e6
commit 7d96c3c45e
58 changed files with 193 additions and 506 deletions

1
.gitignore vendored
View File

@ -17,3 +17,4 @@
/qtwayland-everywhere-opensource-src-5.15.7.tar.xz /qtwayland-everywhere-opensource-src-5.15.7.tar.xz
/qtwayland-everywhere-opensource-src-5.15.8.tar.xz /qtwayland-everywhere-opensource-src-5.15.8.tar.xz
/qtwayland-everywhere-opensource-src-5.15.9.tar.xz /qtwayland-everywhere-opensource-src-5.15.9.tar.xz
/qtwayland-everywhere-opensource-src-5.15.10.tar.xz

View File

@ -1,7 +1,7 @@
From 4ddf70b1ed7c5baddef41c549d04917b9dec7d0f Mon Sep 17 00:00:00 2001 From d7ea7592e47828d2f806bb372db705a1f3b9f948 Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org> From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Wed, 5 May 2021 20:49:26 +0300 Date: Wed, 5 May 2021 20:49:26 +0300
Subject: [PATCH 01/55] Client: Announce an output after receiving more Subject: [PATCH 01/51] Client: Announce an output after receiving more
complete state complete state
Output initialization is not atomic, meaning that the compositor may Output initialization is not atomic, meaning that the compositor may
@ -142,5 +142,5 @@ index df1c94f2..050cfdc0 100644
#if QT_CONFIG(cursor) #if QT_CONFIG(cursor)
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From a9bcc5dc553b5a307a5bdcb6e1d92058e0257c7c Mon Sep 17 00:00:00 2001 From e08bb6ed336b4bd2f3e85b0d2f43f1b49cdaf7b0 Mon Sep 17 00:00:00 2001
From: Jaeyoon Jung <jaeyoon.jung@lge.com> From: Jaeyoon Jung <jaeyoon.jung@lge.com>
Date: Mon, 15 Feb 2021 08:31:06 +0900 Date: Mon, 15 Feb 2021 08:31:06 +0900
Subject: [PATCH 02/55] Fix issue with repeated window size changes Subject: [PATCH 02/51] Fix issue with repeated window size changes
Check if the new window size is different from the size requested Check if the new window size is different from the size requested
previously before calling wl_egl_window_resize. It addresses the issue previously before calling wl_egl_window_resize. It addresses the issue
@ -54,5 +54,5 @@ index 6c8f04ec..94c56325 100644
} }
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From eb8e933841d66f0ebe071a170a9af995c2b07b0d Mon Sep 17 00:00:00 2001 From 40965d23e170cb02b184cda5962352acd415542e Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org> From: David Edmundson <davidedmundson@kde.org>
Date: Tue, 9 Feb 2021 16:09:21 +0000 Date: Tue, 9 Feb 2021 16:09:21 +0000
Subject: [PATCH 03/55] Client: Connect drags being accepted to updating the Subject: [PATCH 03/51] Client: Connect drags being accepted to updating the
source drag icon source drag icon
Currently in a multi-process drag and drop when the other client accepts Currently in a multi-process drag and drop when the other client accepts
@ -35,5 +35,5 @@ index 7e2e3308..bbd2d568 100644
start_drag(m_dragSource->object(), origin->wlSurface(), icon->wlSurface(), m_display->currentInputDevice()->serial()); start_drag(m_dragSource->object(), origin->wlSurface(), icon->wlSurface(), m_display->currentInputDevice()->serial());
return true; return true;
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 9d16197f5e888b68cdf98165f46dcc9ac4dd9820 Mon Sep 17 00:00:00 2001 From 1474fd12afbc6c9850872801c70252c425d4280b Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org> From: David Edmundson <davidedmundson@kde.org>
Date: Fri, 14 May 2021 13:23:24 +0100 Date: Fri, 14 May 2021 13:23:24 +0100
Subject: [PATCH 04/55] Client: Disconnect registry listener on destruction Subject: [PATCH 04/51] Client: Disconnect registry listener on destruction
If a display outlives a QWaylandClientExtension and a new global is If a display outlives a QWaylandClientExtension and a new global is
announced we end up delivering an event to a now deleted extension which announced we end up delivering an event to a now deleted extension which
@ -45,5 +45,5 @@ index 98272e57..5bd28398 100644
QtWaylandClient::QWaylandIntegration *integration() const; QtWaylandClient::QWaylandIntegration *integration() const;
int version() const; int version() const;
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 8256c6d8bb0f456ad27031bad1cce916c0c29740 Mon Sep 17 00:00:00 2001 From f5e0a5773064636b6802a4f8f7fb0cb3cec46a68 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org> From: David Edmundson <davidedmundson@kde.org>
Date: Mon, 3 May 2021 23:01:53 +0100 Date: Mon, 3 May 2021 23:01:53 +0100
Subject: [PATCH 05/55] Client: Set XdgShell size hints before the first commit Subject: [PATCH 05/51] Client: Set XdgShell size hints before the first commit
propagateSizeHints is only called in QWindow we have platform window and propagateSizeHints is only called in QWindow we have platform window and
minimumSizeHint is then sent. We also need to send existing hints when minimumSizeHint is then sent. We also need to send existing hints when
@ -20,7 +20,7 @@ Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
2 files changed, 2 insertions(+), 3 deletions(-) 2 files changed, 2 insertions(+), 3 deletions(-)
diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
index f50e1c0e..1f51562b 100644 index fa9c01aa..c3d2d3ea 100644
--- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp --- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
+++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp +++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
@@ -105,8 +105,6 @@ void QWaylandXdgSurface::Toplevel::applyConfigure() @@ -105,8 +105,6 @@ void QWaylandXdgSurface::Toplevel::applyConfigure()
@ -32,7 +32,7 @@ index f50e1c0e..1f51562b 100644
m_applied = m_pending; m_applied = m_pending;
qCDebug(lcQpaWayland) << "Applied pending xdg_toplevel configure event:" << m_applied.size << m_applied.states; qCDebug(lcQpaWayland) << "Applied pending xdg_toplevel configure event:" << m_applied.size << m_applied.states;
} }
@@ -257,6 +255,7 @@ QWaylandXdgSurface::QWaylandXdgSurface(QWaylandXdgShell *shell, ::xdg_surface *s @@ -267,6 +265,7 @@ QWaylandXdgSurface::QWaylandXdgSurface(QWaylandXdgShell *shell, ::xdg_surface *s
m_toplevel->set_parent(parentXdgSurface->m_toplevel->object()); m_toplevel->set_parent(parentXdgSurface->m_toplevel->object());
} }
} }
@ -54,5 +54,5 @@ index 2277bbb8..2fdd0a7c 100644
QCOMPOSITOR_TRY_COMPARE(xdgToplevel()->m_committed.minSize, QSize(100, 100)); QCOMPOSITOR_TRY_COMPARE(xdgToplevel()->m_committed.minSize, QSize(100, 100));
QCOMPOSITOR_TRY_COMPARE(xdgToplevel()->m_committed.maxSize, QSize(1000, 1000)); QCOMPOSITOR_TRY_COMPARE(xdgToplevel()->m_committed.maxSize, QSize(1000, 1000));
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From bea02a7b4bce8cc3b2a7bce10c53fccc9aedef1e Mon Sep 17 00:00:00 2001 From 27108c290bf0f12bb032827e5c01cc94e330d547 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org> From: David Edmundson <davidedmundson@kde.org>
Date: Mon, 14 Jun 2021 12:45:37 +0100 Date: Mon, 14 Jun 2021 12:45:37 +0100
Subject: [PATCH 06/55] Fix build Subject: [PATCH 06/51] Fix build
1b5e43a593e917610e6245f7a272ac081c508ba4 relied on a patch that we can't 1b5e43a593e917610e6245f7a272ac081c508ba4 relied on a patch that we can't
backport. backport.
@ -42,5 +42,5 @@ index 69cc46a0..9091efbe 100644
class Q_WAYLAND_CLIENT_EXPORT QWaylandClientExtensionTemplatePrivate : public QWaylandClientExtensionPrivate class Q_WAYLAND_CLIENT_EXPORT QWaylandClientExtensionTemplatePrivate : public QWaylandClientExtensionPrivate
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 418580420c34c1a81fd5a4d872e41dc467c124d0 Mon Sep 17 00:00:00 2001 From 07a83b80d7c1b90146d9c6b6339bf4e730ca50b9 Mon Sep 17 00:00:00 2001
From: Zhang Liang <zhanglianga@uniontech.com> From: Zhang Liang <zhanglianga@uniontech.com>
Date: Mon, 1 Feb 2021 19:29:43 +0800 Date: Mon, 1 Feb 2021 19:29:43 +0800
Subject: [PATCH 07/55] Fix: remove listener Subject: [PATCH 07/51] Fix: remove listener
Add the operation for removing the listener form listener list Add the operation for removing the listener form listener list
@ -29,5 +29,5 @@ index 78e387bc..280e63bd 100644
uint32_t QWaylandDisplay::currentTimeMillisec() uint32_t QWaylandDisplay::currentTimeMillisec()
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 0bd8b57955c74fd7cadc3ceb1409c1705208f91e Mon Sep 17 00:00:00 2001 From 218aa4f1fb91a1dfe892111a45376091dd34ec06 Mon Sep 17 00:00:00 2001
From: David Redondo <qt@david-redondo.de> From: David Redondo <qt@david-redondo.de>
Date: Wed, 26 May 2021 14:49:40 +0200 Date: Wed, 26 May 2021 14:49:40 +0200
Subject: [PATCH 08/55] Hook up queryKeyboardModifers Subject: [PATCH 08/51] Hook up queryKeyboardModifers
Can be useful when upon enter a modifiers event is received but no key Can be useful when upon enter a modifiers event is received but no key
event so no QKeyEvent is generated. event so no QKeyEvent is generated.
@ -51,5 +51,5 @@ index ff70ae25..73b80658 100644
QStringList themeNames() const override; QStringList themeNames() const override;
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 046a799372b78ab843b26c2312bb563c0d50adcb Mon Sep 17 00:00:00 2001 From cedb1d0987486f0162d8a10defb3705f5e3b3a45 Mon Sep 17 00:00:00 2001
From: Jan Blackquill <uhhadd@gmail.com> From: Jan Blackquill <uhhadd@gmail.com>
Date: Tue, 24 Aug 2021 14:36:34 -0400 Date: Tue, 24 Aug 2021 14:36:34 -0400
Subject: [PATCH 09/55] Correctly detect if image format is supported by Subject: [PATCH 09/51] Correctly detect if image format is supported by
QImageWriter QImageWriter
The code queries potential image formats by stripping a mimetype of its The code queries potential image formats by stripping a mimetype of its
@ -64,5 +64,5 @@ index a5fdd34d..051a91dc 100644
fmt = imgFmt; fmt = imgFmt;
} }
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 3bb880d6b828f934f69608af958963c9eedc4e74 Mon Sep 17 00:00:00 2001 From 39f76fba46ff2a6bd4aca6c2abea501d56bed62e Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <gbsneto@gnome.org> From: Georges Basile Stavracas Neto <gbsneto@gnome.org>
Date: Thu, 27 May 2021 19:55:04 -0300 Date: Thu, 27 May 2021 19:55:04 -0300
Subject: [PATCH 10/55] Client: Don't always recreate frame callbacks Subject: [PATCH 10/51] Client: Don't always recreate frame callbacks
The main QWaylandWindow method that is executed when handling updates is The main QWaylandWindow method that is executed when handling updates is
QWaylandWindow::handleUpdate(). This method always, unconditionally queues QWaylandWindow::handleUpdate(). This method always, unconditionally queues
@ -73,5 +73,5 @@ index 2fdd0a7c..e2593314 100644
void tst_xdgshell::popup() void tst_xdgshell::popup()
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From a0ab21120ae0d0976d1c554aa72f00d4b3d35de9 Mon Sep 17 00:00:00 2001 From c9cd53f50c71af26278589b1477c8d800c776ac1 Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <gbsneto@gnome.org> From: Georges Basile Stavracas Neto <gbsneto@gnome.org>
Date: Thu, 27 May 2021 20:02:53 -0300 Date: Thu, 27 May 2021 20:02:53 -0300
Subject: [PATCH 11/55] Client: Always destroy frame callback in the actual Subject: [PATCH 11/51] Client: Always destroy frame callback in the actual
callback callback
It's good hygiene to destroy all frame callbacks. Destroy the It's good hygiene to destroy all frame callbacks. Destroy the
@ -54,5 +54,5 @@ index 23816895..d3f28d68 100644
struct ::wl_surface *wrappedSurface = reinterpret_cast<struct ::wl_surface *>(wl_proxy_create_wrapper(mSurface->object())); struct ::wl_surface *wrappedSurface = reinterpret_cast<struct ::wl_surface *>(wl_proxy_create_wrapper(mSurface->object()));
wl_proxy_set_queue(reinterpret_cast<wl_proxy *>(wrappedSurface), mFrameQueue.queue); wl_proxy_set_queue(reinterpret_cast<wl_proxy *>(wrappedSurface), mFrameQueue.queue);
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From d40acfcc33ae9f8d105f196d1af03a640a02db0b Mon Sep 17 00:00:00 2001 From 398c131a02d48fc9f538951f08caa93dccd03a1a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=A9ven=20Car?= <meven.car@enioka.com> From: =?UTF-8?q?M=C3=A9ven=20Car?= <meven.car@enioka.com>
Date: Wed, 18 Aug 2021 18:28:20 +0200 Date: Wed, 18 Aug 2021 18:28:20 +0200
Subject: [PATCH 12/55] Wayland client: use wl_keyboard to determine active Subject: [PATCH 12/51] Wayland client: use wl_keyboard to determine active
state state
Commit f497a5bb87270174b8e0106b7eca1992d44ff15d made QWaylandDisplay Commit f497a5bb87270174b8e0106b7eca1992d44ff15d made QWaylandDisplay
@ -234,7 +234,7 @@ index 261f8cbb..c1bcd5c6 100644
private: private:
QScopedPointer<QWaylandXdgShellV6> m_xdgShell; QScopedPointer<QWaylandXdgShellV6> m_xdgShell;
diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
index 1f51562b..b7383e19 100644 index c3d2d3ea..9a362b74 100644
--- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp --- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
+++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp +++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
@@ -67,11 +67,6 @@ QWaylandXdgSurface::Toplevel::Toplevel(QWaylandXdgSurface *xdgSurface) @@ -67,11 +67,6 @@ QWaylandXdgSurface::Toplevel::Toplevel(QWaylandXdgSurface *xdgSurface)
@ -337,5 +337,5 @@ index e2593314..73d1eb9c 100644
const QSize screenSize(640, 480); const QSize screenSize(640, 480);
const uint maximizedSerial = exec([=] { const uint maximizedSerial = exec([=] {
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 23327bb4cdc00b47e0f96efca2fe494540f01601 Mon Sep 17 00:00:00 2001 From 4cbf15b311fd9b00b28205e474c4b31a92ab819d Mon Sep 17 00:00:00 2001
From: Jan Grulich <jgrulich@redhat.com> From: Jan Grulich <jgrulich@redhat.com>
Date: Fri, 16 Jul 2021 13:00:03 +0200 Date: Fri, 16 Jul 2021 13:00:03 +0200
Subject: [PATCH 13/55] Client: do not empty clipboard when a new popup/window Subject: [PATCH 13/51] Client: do not empty clipboard when a new popup/window
is opened is opened
If we open a new popup or a window within the same app we have to avoid If we open a new popup or a window within the same app we have to avoid
@ -64,5 +64,5 @@ index e931d1f5..5d704795 100644
mRepeatTimer.stop(); mRepeatTimer.stop();
} }
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From e0e004c77140da5e454dadf4d6809c1603b5735d Mon Sep 17 00:00:00 2001 From 52f362f8dfd27a65cdee945ba923ae30521ab922 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org> From: David Edmundson <davidedmundson@kde.org>
Date: Tue, 16 Feb 2021 09:51:47 +0000 Date: Tue, 16 Feb 2021 09:51:47 +0000
Subject: [PATCH 14/55] Client: Implement DataDeviceV3 Subject: [PATCH 14/51] Client: Implement DataDeviceV3
DataDeviceV2 fixes a leak of DataDevice resources. DataDeviceV2 fixes a leak of DataDevice resources.
@ -509,5 +509,5 @@ index 1568b3b9..067410d0 100644
class DataDeviceCompositor : public DefaultCompositor { class DataDeviceCompositor : public DefaultCompositor {
public: public:
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From f3900786ebe46aefbecbb2a37cb175846ca0dfc2 Mon Sep 17 00:00:00 2001 From b29079669153d7b1894fc13b2cd8c6de1ad5471a Mon Sep 17 00:00:00 2001
From: Arjen Hiemstra <ahiemstra@heimr.nl> From: Arjen Hiemstra <ahiemstra@heimr.nl>
Date: Thu, 18 Nov 2021 13:05:30 +0100 Date: Thu, 18 Nov 2021 13:05:30 +0100
Subject: [PATCH 15/55] Client: Delay deletion of QDrag object until after Subject: [PATCH 15/51] Client: Delay deletion of QDrag object until after
we're done with it we're done with it
In certain cases, most notably when performing drag and drop operations In certain cases, most notably when performing drag and drop operations
@ -63,5 +63,5 @@ index 747f0190..46f629ac 100644
private: private:
QWaylandDisplay *m_display = nullptr; QWaylandDisplay *m_display = nullptr;
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 9edd2a05c79a1c40867440826c830c76136152da Mon Sep 17 00:00:00 2001 From fde475c6e235429e7af64a54b9d81e893c618af7 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org> From: David Edmundson <davidedmundson@kde.org>
Date: Sun, 14 Nov 2021 13:54:19 +0000 Date: Sun, 14 Nov 2021 13:54:19 +0000
Subject: [PATCH 16/55] Client: Avoid processing of events when showing windows Subject: [PATCH 16/51] Client: Avoid processing of events when showing windows
The only time we want to dispatch events from the wayland socket is when 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 the application is waiting for external events. Doing so at any other
@ -34,5 +34,5 @@ index b363c352..b98435ed 100644
setGeometry(windowGeometry()); setGeometry(windowGeometry());
// Don't flush the events here, or else the newly visible window may start drawing, but since // Don't flush the events here, or else the newly visible window may start drawing, but since
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 5889bb845d951a7877201bca97ffe4bb2491d966 Mon Sep 17 00:00:00 2001 From f22c2639663d9b9010fd79a5873e11a716106b65 Mon Sep 17 00:00:00 2001
From: Elvis Lee <kwangwoong.lee@lge.com> From: Elvis Lee <kwangwoong.lee@lge.com>
Date: Thu, 18 Feb 2021 15:45:49 +0900 Date: Thu, 18 Feb 2021 15:45:49 +0900
Subject: [PATCH 17/55] Handle registry_global out of constructor Subject: [PATCH 17/51] Handle registry_global out of constructor
Factory functions in QWaylandDisplay::registry_global() can be overridden. Factory functions in QWaylandDisplay::registry_global() can be overridden.
Later, other classes instantiated in the registry_global can support Later, other classes instantiated in the registry_global can support
@ -81,5 +81,5 @@ index cd8569b1..8afecb31 100644
mDisplay->ensureScreen(); mDisplay->ensureScreen();
} }
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 2e03c3b47fa91eb8db5b9a635c2f9dca2b4f5158 Mon Sep 17 00:00:00 2001 From 192b3af086ecca973109be4e169a601af434239a Mon Sep 17 00:00:00 2001
From: Elvis Lee <kwangwoong.lee@lge.com> From: Elvis Lee <kwangwoong.lee@lge.com>
Date: Wed, 17 Mar 2021 16:31:10 +0900 Date: Wed, 17 Mar 2021 16:31:10 +0900
Subject: [PATCH 18/55] Connect flushRequest after forceRoundTrip Subject: [PATCH 18/51] Connect flushRequest after forceRoundTrip
If flushRequest is connected with aboutToBlock, the flushRequest If flushRequest is connected with aboutToBlock, the flushRequest
may consumes all events so that processEvents might be blocked in forceRoundTrip. may consumes all events so that processEvents might be blocked in forceRoundTrip.
@ -43,5 +43,5 @@ index 8afecb31..661cea53 100644
mDisplay->ensureScreen(); mDisplay->ensureScreen();
} }
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From d89cc9deab3f61cacfad71e8aa32d83d421d49da Mon Sep 17 00:00:00 2001 From 965fc31b57176d7d913d90465a857c285abd0a59 Mon Sep 17 00:00:00 2001
From: Adrien Faveraux <af@brain-networks.fr> From: Adrien Faveraux <af@brain-networks.fr>
Date: Fri, 26 Nov 2021 09:18:58 +0100 Date: Fri, 26 Nov 2021 09:18:58 +0100
Subject: [PATCH 19/55] Move the wayland socket polling to a separate event Subject: [PATCH 19/51] Move the wayland socket polling to a separate event
thread thread
New event threads is introduced which calls poll() on the wayland fd, New event threads is introduced which calls poll() on the wayland fd,
@ -570,5 +570,5 @@ index fb3ed606..54ac67a9 100644
// True when we have called deliverRequestUpdate, but the client has not yet attached a new buffer // True when we have called deliverRequestUpdate, but the client has not yet attached a new buffer
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 58c67c6e8f2d94cef7f8eec072ebad031769e144 Mon Sep 17 00:00:00 2001 From 39f6f824e660c36b2865bf55f9ea609aaa02697e Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org> From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Tue, 1 Feb 2022 13:05:36 +0200 Date: Tue, 1 Feb 2022 13:05:36 +0200
Subject: [PATCH 20/55] Client: Remove mWaitingForUpdateDelivery Subject: [PATCH 20/51] Client: Remove mWaitingForUpdateDelivery
Currently, mWaitingForUpdateDelivery is shared between the main thread Currently, mWaitingForUpdateDelivery is shared between the main thread
(doHandleFrameCallback()) and the frame callback event thread (doHandleFrameCallback()) and the frame callback event thread
@ -75,5 +75,5 @@ index 54ac67a9..cf7ce879 100644
QElapsedTimer mFrameCallbackElapsedTimer; QElapsedTimer mFrameCallbackElapsedTimer;
struct ::wl_callback *mFrameCallback = nullptr; struct ::wl_callback *mFrameCallback = nullptr;
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 71a1a9791df20307dd4eb688b0957d0f695823c5 Mon Sep 17 00:00:00 2001 From 89b396cbef7c8fb7041d3a13d952d468c5c57e56 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org> From: David Edmundson <davidedmundson@kde.org>
Date: Wed, 9 Feb 2022 17:20:48 +0000 Date: Wed, 9 Feb 2022 17:20:48 +0000
Subject: [PATCH 21/55] client: Simplify round trip behavior Subject: [PATCH 21/51] client: Simplify round trip behavior
The custom event queue was removed in The custom event queue was removed in
302d4ffb8549214eb4028dc3e47ec4ee4e12ffbd (2015) so the comment about not 302d4ffb8549214eb4028dc3e47ec4ee4e12ffbd (2015) so the comment about not
@ -78,5 +78,5 @@ index ebcdbd22..d371ffec 100644
bool QWaylandDisplay::supportsWindowDecoration() const bool QWaylandDisplay::supportsWindowDecoration() const
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From f584a8350503e349669744a1587634431ac0dc82 Mon Sep 17 00:00:00 2001 From 0cf12729a90380d3ef11efebfbfa9458c397d592 Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org> From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Sat, 19 Feb 2022 17:01:04 +0200 Date: Sat, 19 Feb 2022 17:01:04 +0200
Subject: [PATCH 22/55] Client: Fix opaque region setter Subject: [PATCH 22/51] Client: Fix opaque region setter
The rect is in the global coordinate system, while the opaque region The rect is in the global coordinate system, while the opaque region
must be in the surface local coordinate system. must be in the surface local coordinate system.
@ -27,5 +27,5 @@ index de5af1bd..69319228 100644
void QWaylandWindow::resizeFromApplyConfigure(const QSize &sizeWithMargins, const QPoint &offset) void QWaylandWindow::resizeFromApplyConfigure(const QSize &sizeWithMargins, const QPoint &offset)
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From a9831916ac5463682b7a27db3ffcadfe0ea07ab9 Mon Sep 17 00:00:00 2001 From 1ab149c13af4806ef950487e2d9db8a937645791 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de> From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Fri, 4 Feb 2022 11:07:36 +0100 Date: Fri, 4 Feb 2022 11:07:36 +0100
Subject: [PATCH 23/55] Use proper dependencies in compile tests Subject: [PATCH 23/51] Use proper dependencies in compile tests
Use the dependencies as found by the "libraries" section instead of relying Use the dependencies as found by the "libraries" section instead of relying
on them being available in the default location (e.g. "-ldrm"). on them being available in the default location (e.g. "-ldrm").
@ -122,5 +122,5 @@ index bcfd5215..da95d07b 100644
}, },
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From c6639e225f45564def8f6729c83887ab73495e59 Mon Sep 17 00:00:00 2001 From 16d52e9ad900a25a02ff4eae43cc7d7e43dbad8a Mon Sep 17 00:00:00 2001
From: Paul Olav Tvete <paul.tvete@qt.io> From: Paul Olav Tvete <paul.tvete@qt.io>
Date: Tue, 15 Mar 2022 15:59:15 +0100 Date: Tue, 15 Mar 2022 15:59:15 +0100
Subject: [PATCH 24/55] Revert "Client: Remove mWaitingForUpdateDelivery" Subject: [PATCH 24/51] Revert "Client: Remove mWaitingForUpdateDelivery"
The reverted commit introduces a severe performance regression The reverted commit introduces a severe performance regression
when a client window is resized while a QtQuick renderthread when a client window is resized while a QtQuick renderthread
@ -55,5 +55,5 @@ index cf7ce879..54ac67a9 100644
QElapsedTimer mFrameCallbackElapsedTimer; QElapsedTimer mFrameCallbackElapsedTimer;
struct ::wl_callback *mFrameCallback = nullptr; struct ::wl_callback *mFrameCallback = nullptr;
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 2c403a8522db9aa6a9f365dba5f8ef5af205295c Mon Sep 17 00:00:00 2001 From 2a7884f0d51d4da20e675640b8d987004c9d77c5 Mon Sep 17 00:00:00 2001
From: Paul Olav Tvete <paul.tvete@qt.io> From: Paul Olav Tvete <paul.tvete@qt.io>
Date: Tue, 15 Mar 2022 16:53:04 +0100 Date: Tue, 15 Mar 2022 16:53:04 +0100
Subject: [PATCH 25/55] Fix race condition on mWaitingForUpdateDelivery Subject: [PATCH 25/51] Fix race condition on mWaitingForUpdateDelivery
Change-Id: I0e91bda73722468b9339fc434fe04420b5e7d3da Change-Id: I0e91bda73722468b9339fc434fe04420b5e7d3da
Reviewed-by: David Edmundson <davidedmundson@kde.org> Reviewed-by: David Edmundson <davidedmundson@kde.org>
@ -55,5 +55,5 @@ index 54ac67a9..c0a76345 100644
QElapsedTimer mFrameCallbackElapsedTimer; QElapsedTimer mFrameCallbackElapsedTimer;
struct ::wl_callback *mFrameCallback = nullptr; struct ::wl_callback *mFrameCallback = nullptr;
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 2f0528fc51a378bdd8a3ff93d996765fccf54cce Mon Sep 17 00:00:00 2001 From ddfa956f6c39c53249116b979f679b255ed4a596 Mon Sep 17 00:00:00 2001
From: Kenneth Topp <ken@bllue.org> From: Kenneth Topp <ken@bllue.org>
Date: Mon, 4 Apr 2022 09:36:21 -0400 Date: Mon, 4 Apr 2022 09:36:21 -0400
Subject: [PATCH 26/55] use poll(2) when reading from clipboard Subject: [PATCH 26/51] use poll(2) when reading from clipboard
change clipboard read away from select(2) call which can fail when change clipboard read away from select(2) call which can fail when
an application has large number of open files an application has large number of open files
@ -44,5 +44,5 @@ index c9e158cc..fe0ea8c9 100644
} else if (ready == 0) { } else if (ready == 0) {
qWarning("QWaylandDataOffer: timeout reading from pipe"); qWarning("QWaylandDataOffer: timeout reading from pipe");
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 2197557879ae1e3459e715dbc20b21e8652cb972 Mon Sep 17 00:00:00 2001 From b981fc82eb37700353949c72d3fd6d0887c8c107 Mon Sep 17 00:00:00 2001
From: Ulf Hermann <ulf.hermann@qt.io> From: Ulf Hermann <ulf.hermann@qt.io>
Date: Tue, 22 Feb 2022 12:31:08 +0100 Date: Tue, 22 Feb 2022 12:31:08 +0100
Subject: [PATCH 27/55] Reduce memory leakage Subject: [PATCH 27/51] Reduce memory leakage
We need to clean up the event queue when we're done. We need to clean up the event queue when we're done.
@ -27,5 +27,5 @@ index d371ffec..1b9ec699 100644
// Steps which is called just after constructor. This separates registry_global() out of the constructor // Steps which is called just after constructor. This separates registry_global() out of the constructor
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From d9b04ba05ed479b577579e6a34d97fb906791f69 Mon Sep 17 00:00:00 2001 From 91afb601e33f492393f7b27a84aa281b55d26de2 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org> From: Sam James <sam@gentoo.org>
Date: Sat, 18 Jun 2022 17:11:11 +0100 Date: Sat, 18 Jun 2022 17:11:11 +0100
Subject: [PATCH 28/55] Fix build with libcxx (missing array include) Subject: [PATCH 28/51] Fix build with libcxx (missing array include)
Bug: https://bugs.gentoo.org/833488 Bug: https://bugs.gentoo.org/833488
@ -28,5 +28,5 @@ index 56a710c3..c6a8b6c6 100644
#include <EGL/eglext.h> #include <EGL/eglext.h>
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 9265dae0d87eaf2a0dfc8a67c46f6c11bd14d2ab Mon Sep 17 00:00:00 2001 From 76a2b1919f04152e77740b2d1601df893b8d79ba Mon Sep 17 00:00:00 2001
From: Weng Xuetian <wengxt@gmail.com> From: Weng Xuetian <wengxt@gmail.com>
Date: Wed, 20 Jul 2022 15:57:40 -0700 Date: Wed, 20 Jul 2022 15:57:40 -0700
Subject: [PATCH 29/55] Only close popup in the the hierchary Subject: [PATCH 29/51] Only close popup in the the hierchary
Imagine following event sequences: Imagine following event sequences:
1. a tooltip is shown. activePopups = {tooltip} 1. a tooltip is shown. activePopups = {tooltip}
@ -209,7 +209,7 @@ index 8c371661..151c78e3 100644
auto *shell = m_xdgSurface->m_shell; auto *shell = m_xdgSurface->m_shell;
Q_ASSERT(shell->m_topmostGrabbingPopup == this); Q_ASSERT(shell->m_topmostGrabbingPopup == this);
diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
index b7383e19..962001b3 100644 index 9a362b74..ead99989 100644
--- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp --- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
+++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp +++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
@@ -195,12 +195,17 @@ QtWayland::xdg_toplevel::resize_edge QWaylandXdgSurface::Toplevel::convertToResi @@ -195,12 +195,17 @@ QtWayland::xdg_toplevel::resize_edge QWaylandXdgSurface::Toplevel::convertToResi
@ -246,10 +246,10 @@ index b7383e19..962001b3 100644
Q_ASSERT(shell->m_topmostGrabbingPopup == this); Q_ASSERT(shell->m_topmostGrabbingPopup == this);
- shell->m_topmostGrabbingPopup = m_parent->m_popup; - shell->m_topmostGrabbingPopup = m_parent->m_popup;
+ shell->m_topmostGrabbingPopup = m_parentXdgSurface ? m_parentXdgSurface->m_popup : nullptr; + shell->m_topmostGrabbingPopup = m_parentXdgSurface ? m_parentXdgSurface->m_popup : nullptr;
} m_grabbing = false;
}
@@ -393,8 +402,6 @@ void QWaylandXdgSurface::setPopup(QWaylandWindow *parent) // Synthesize Qt enter/leave events for popup
@@ -403,8 +412,6 @@ void QWaylandXdgSurface::setPopup(QWaylandWindow *parent)
{ {
Q_ASSERT(!m_toplevel && !m_popup); Q_ASSERT(!m_toplevel && !m_popup);
@ -258,7 +258,7 @@ index b7383e19..962001b3 100644
auto positioner = new QtWayland::xdg_positioner(m_shell->create_positioner()); auto positioner = new QtWayland::xdg_positioner(m_shell->create_positioner());
// set_popup expects a position relative to the parent // set_popup expects a position relative to the parent
QPoint transientPos = m_window->geometry().topLeft(); // this is absolute QPoint transientPos = m_window->geometry().topLeft(); // this is absolute
@@ -411,8 +418,9 @@ void QWaylandXdgSurface::setPopup(QWaylandWindow *parent) @@ -421,8 +428,9 @@ void QWaylandXdgSurface::setPopup(QWaylandWindow *parent)
| QtWayland::xdg_positioner::constraint_adjustment_slide_y | QtWayland::xdg_positioner::constraint_adjustment_slide_y
| QtWayland::xdg_positioner::constraint_adjustment_flip_x | QtWayland::xdg_positioner::constraint_adjustment_flip_x
| QtWayland::xdg_positioner::constraint_adjustment_flip_y); | QtWayland::xdg_positioner::constraint_adjustment_flip_y);
@ -397,5 +397,5 @@ index 73d1eb9c..747875b4 100644
void tst_xdgshell::switchPopups() void tst_xdgshell::switchPopups()
{ {
-- --
2.40.0 2.40.1

View File

@ -1,28 +0,0 @@
From 08ce7a21017e1f9553cd0f4af1316e38709d5553 Mon Sep 17 00:00:00 2001
From: Ville Voutilainen <ville.voutilainen@qt.io>
Date: Mon, 18 Jan 2021 12:31:31 +0200
Subject: [PATCH 30/55] Build fixes for GCC 11
Task-number: QTBUG-89977
Change-Id: I7e3d0964087865e8062f539f851a61f3df017dae
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 1aa6ec2c778504d96543f6cdc2b9199a7b066fc1)
---
tests/auto/client/shared/corecompositor.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/tests/auto/client/shared/corecompositor.cpp b/tests/auto/client/shared/corecompositor.cpp
index 5c6c83ba..fa9b7662 100644
--- a/tests/auto/client/shared/corecompositor.cpp
+++ b/tests/auto/client/shared/corecompositor.cpp
@@ -27,6 +27,7 @@
****************************************************************************/
#include "corecompositor.h"
+#include <thread>
namespace MockCompositor {
--
2.40.0

View File

@ -1,7 +1,7 @@
From ec0171610350305be51c3e4be7c6f086cb360fe6 Mon Sep 17 00:00:00 2001 From b14eb8fdac3bfa2763a83541a3e4764c0eac153e Mon Sep 17 00:00:00 2001
From: Roman Genkhel <roman.genhel@lge.com> From: Roman Genkhel <roman.genhel@lge.com>
Date: Thu, 12 Nov 2020 12:21:51 +0300 Date: Thu, 12 Nov 2020 12:21:51 +0300
Subject: [PATCH 31/55] Check pointer for null before use in ASSERT Subject: [PATCH 30/51] Check pointer for null before use in ASSERT
Task-number: QTBUG-85195 Task-number: QTBUG-85195
Change-Id: I331e54f6e58aa9d536351a55223610c60b3cb414 Change-Id: I331e54f6e58aa9d536351a55223610c60b3cb414
@ -30,5 +30,5 @@ index 9e82c174..0a5fc15b 100644
buffer->setBusy(); buffer->setBusy();
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 2d3d929c86c5aab6dd30e02ade25697d49617335 Mon Sep 17 00:00:00 2001 From 7daab1d4a36463f0904fdde539894609f8b367c1 Mon Sep 17 00:00:00 2001
From: Paul Olav Tvete <paul.tvete@qt.io> From: Paul Olav Tvete <paul.tvete@qt.io>
Date: Mon, 6 Jul 2020 14:37:35 +0200 Date: Mon, 6 Jul 2020 14:37:35 +0200
Subject: [PATCH 32/55] Use wl_surface.damage_buffer on the client side Subject: [PATCH 31/51] Use wl_surface.damage_buffer on the client side
Prefer the newer, recommended damage_buffer when the compositor Prefer the newer, recommended damage_buffer when the compositor
supports it. supports it.
@ -127,5 +127,5 @@ index 949dc23d..d176837e 100644
uint32_t callback) override; uint32_t callback) override;
void surface_commit(Resource *resource) override; void surface_commit(Resource *resource) override;
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From bdf04e01153aeda2c2bafa059dd21dc377eb82e1 Mon Sep 17 00:00:00 2001 From 152984fa2347a2f02568ac6cd9baba5bd8e4d56d Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org> From: David Edmundson <davidedmundson@kde.org>
Date: Fri, 5 Aug 2022 15:00:31 +0100 Date: Fri, 5 Aug 2022 15:00:31 +0100
Subject: [PATCH 33/55] Client: clear focus on touch cancel Subject: [PATCH 32/51] Client: clear focus on touch cancel
When we get a touch_cancel event all touches should be treated as When we get a touch_cancel event all touches should be treated as
lifted. lifted.
@ -112,5 +112,5 @@ index 296dbf47..210d8ddb 100644
Seat *m_seat = nullptr; Seat *m_seat = nullptr;
}; };
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From e920173ee9cef08d10ad8a7e21ae7a5a2c2d7530 Mon Sep 17 00:00:00 2001 From 11824dcf4164898a48b0629a072370a195dcc8f1 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org> From: David Edmundson <davidedmundson@kde.org>
Date: Thu, 3 Feb 2022 19:42:33 +0000 Date: Thu, 3 Feb 2022 19:42:33 +0000
Subject: [PATCH 34/55] Guard mResizeDirty by the correctMutex Subject: [PATCH 33/51] Guard mResizeDirty by the correctMutex
mResizeDirty is used in the GUI thread in setCanResize which can be mResizeDirty is used in the GUI thread in setCanResize which can be
called from the GUI thread. It is queried and set whilst the resizeLock called from the GUI thread. It is queried and set whilst the resizeLock
@ -35,5 +35,5 @@ index 5b7f9df9..117e3383 100644
} }
QRect exposeGeometry(QPoint(), geometry().size()); QRect exposeGeometry(QPoint(), geometry().size());
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From bf6b509011c4086cc7b1a7cfdc78dd50e446b15f Mon Sep 17 00:00:00 2001 From 8e2f1b74e780b998ab682d9abbd53feeceaa819e Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org> From: Albert Astals Cid <aacid@kde.org>
Date: Fri, 9 Sep 2022 15:37:49 +0200 Date: Fri, 9 Sep 2022 15:37:49 +0200
Subject: [PATCH 36/55] Fix compile tests Subject: [PATCH 34/51] Fix compile tests
Broken in c618467da4c06528537026e2b78f92265bce446f Broken in c618467da4c06528537026e2b78f92265bce446f
--- ---
@ -25,5 +25,5 @@ index b063e0d9..2ea382f1 100644
{ {
auto e = window.m_events.takeFirst(); auto e = window.m_events.takeFirst();
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 137958eec28cb8209069f9a3a3ab778202773ff6 Mon Sep 17 00:00:00 2001 From a7c3f946175a78df45b1eb3301cf16a05a542d58 Mon Sep 17 00:00:00 2001
From: Alexandros Frantzis <alexandros.frantzis@collabora.com> From: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Date: Wed, 11 May 2022 17:12:52 +0300 Date: Wed, 11 May 2022 17:12:52 +0300
Subject: [PATCH 37/55] Use CRLF line delimiter for text/uri-list data Subject: [PATCH 35/51] Use CRLF line delimiter for text/uri-list data
According to RFC 2483, which describes text/uri-list, the line delimiter According to RFC 2483, which describes text/uri-list, the line delimiter
must be CRLF (instead of the currently used LF). Some applications must be CRLF (instead of the currently used LF). Some applications
@ -36,5 +36,5 @@ index 051a91dc..e2fe1928 100644
} else { } else {
content = mimeData->data(mimeType); content = mimeData->data(mimeType);
-- --
2.40.0 2.40.1

View File

@ -1,72 +0,0 @@
From 1ff4219d8c58f8356d9d12824948013cdfde6ac5 Mon Sep 17 00:00:00 2001
From: Liang Qi <liang.qi@qt.io>
Date: Fri, 11 Mar 2022 09:17:25 +0100
Subject: [PATCH 35/55] client: Synthesize enter/leave event for popup in
xdg-shell
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Fixes: QTBUG-100148
Pick-to: 6.3 6.2 5.15
Change-Id: I45e3156d7942cff9968674c0b253d15be7235921
Reviewed-by: Tang Haixiang <tanghaixiang@uniontech.com>
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
(cherry picked from commit 73d35d3117722cef8e94f0d2036c56ad0a5ddae9)
* asturmlechner 2022-09-08: Resolve conflict with dev branch commits
b6a3a938abd4a7fdb7ea96a38485b53f394fba17 and
f8e3257e9b1e22d52e9c221c62b8d9b6dd1151a3
---
.../xdg-shell/qwaylandxdgshell.cpp | 27 +++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
index 962001b3..ead99989 100644
--- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
+++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
@@ -221,6 +221,16 @@ QWaylandXdgSurface::Popup::~Popup()
auto *shell = m_xdgSurface->m_shell;
Q_ASSERT(shell->m_topmostGrabbingPopup == this);
shell->m_topmostGrabbingPopup = m_parentXdgSurface ? m_parentXdgSurface->m_popup : nullptr;
+ m_grabbing = false;
+
+ // Synthesize Qt enter/leave events for popup
+ QWindow *leave = nullptr;
+ if (m_xdgSurface && m_xdgSurface->window())
+ leave = m_xdgSurface->window()->window();
+ QWindowSystemInterface::handleLeaveEvent(leave);
+
+ if (QWindow *enter = QGuiApplication::topLevelAt(QCursor::pos()))
+ QWindowSystemInterface::handleEnterEvent(enter, enter->mapFromGlobal(QCursor::pos()), QCursor::pos());
}
}
@@ -442,6 +452,23 @@ void QWaylandXdgSurface::setGrabPopup(QWaylandWindow *parent, QWaylandInputDevic
}
setPopup(parent);
m_popup->grab(device, serial);
+
+ // Synthesize Qt enter/leave events for popup
+ if (!parent)
+ return;
+ QWindow *current = QGuiApplication::topLevelAt(QCursor::pos());
+ QWindow *leave = parent->window();
+ if (current != leave)
+ return;
+
+ QWindowSystemInterface::handleLeaveEvent(leave);
+
+ QWindow *enter = nullptr;
+ if (m_popup && m_popup->m_xdgSurface && m_popup->m_xdgSurface->window())
+ enter = m_popup->m_xdgSurface->window()->window();
+
+ if (enter)
+ QWindowSystemInterface::handleEnterEvent(enter, enter->mapFromGlobal(QCursor::pos()), QCursor::pos());
}
void QWaylandXdgSurface::xdg_surface_configure(uint32_t serial)
--
2.40.0

View File

@ -1,7 +1,7 @@
From 0064749af275016ae3b4b09964d8d31d756d3468 Mon Sep 17 00:00:00 2001 From 36522a8ed9f43cd49100e06040711de9c2c0c163 Mon Sep 17 00:00:00 2001
From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Date: Mon, 8 Aug 2022 12:14:01 +0200 Date: Mon, 8 Aug 2022 12:14:01 +0200
Subject: [PATCH 38/55] Avoid calling requestUpdate from wrong thread Subject: [PATCH 36/51] Avoid calling requestUpdate from wrong thread
In certain circumstances, we can get to createDecoration() In certain circumstances, we can get to createDecoration()
from the render thread (from QWaylandGLContext::makeCurrent) from the render thread (from QWaylandGLContext::makeCurrent)
@ -39,5 +39,5 @@ index 117e3383..4ddf9fbe 100644
return mWindowDecoration; return mWindowDecoration;
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 35c03e72007630040659188b2bc7f47b1df82577 Mon Sep 17 00:00:00 2001 From 3f0371cb22e117020e57255858e02f9237210a3b Mon Sep 17 00:00:00 2001
From: Fushan Wen <qydwhotmail@gmail.com> From: Fushan Wen <qydwhotmail@gmail.com>
Date: Sun, 18 Sep 2022 18:17:18 +0800 Date: Sun, 18 Sep 2022 18:17:18 +0800
Subject: [PATCH 39/55] Call `finishDrag()` in Subject: [PATCH 37/51] Call `finishDrag()` in
`QWaylandDataDevice::dragSourceCancelled()` `QWaylandDataDevice::dragSourceCancelled()`
Drags can either get finished or cancelled. If a drag is finished Drags can either get finished or cancelled. If a drag is finished
@ -34,5 +34,5 @@ index fbb5aa91..e3e60ed5 100644
} }
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 37ad4aeaa6dce748f5f6bcc5030be187e6320ec0 Mon Sep 17 00:00:00 2001 From 20bef824f4b78598fbffa5ada8271e22b658f635 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org> From: David Edmundson <davidedmundson@kde.org>
Date: Mon, 12 Sep 2022 13:28:08 +0100 Date: Mon, 12 Sep 2022 13:28:08 +0100
Subject: [PATCH 40/55] Hold surface read lock throughout Subject: [PATCH 38/51] Hold surface read lock throughout
QWaylandEglWindow::updateSurface QWaylandEglWindow::updateSurface
QWaylandEGLWindow::updateSurface is called from both the main and render QWaylandEGLWindow::updateSurface is called from both the main and render
@ -81,5 +81,5 @@ index 13dd747a..872a6237 100644
} }
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 61fccee064cd8cea698a530c76113f8487d11d68 Mon Sep 17 00:00:00 2001 From 6481efa9a8fe88043d931648d72dceeeb91af64d Mon Sep 17 00:00:00 2001
From: David Redondo <qt@david-redondo.de> From: David Redondo <qt@david-redondo.de>
Date: Wed, 8 Jun 2022 11:25:59 +0200 Date: Wed, 8 Jun 2022 11:25:59 +0200
Subject: [PATCH 42/55] Keep toplevel windows in the top left corner of the Subject: [PATCH 39/51] Keep toplevel windows in the top left corner of the
screen screen
We can't know the actual position of a window on the screen. This causes We can't know the actual position of a window on the screen. This causes
@ -39,10 +39,10 @@ index fbf00c6b..54861600 100644
QWaylandIntegration::~QWaylandIntegration() QWaylandIntegration::~QWaylandIntegration()
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index 1f2d56b5..d3459168 100644 index 4ddf9fbe..f322a8d6 100644
--- a/src/client/qwaylandwindow.cpp --- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp +++ b/src/client/qwaylandwindow.cpp
@@ -361,8 +361,13 @@ void QWaylandWindow::setGeometry_helper(const QRect &rect) @@ -350,8 +350,13 @@ void QWaylandWindow::setGeometry_helper(const QRect &rect)
} }
} }
@ -57,7 +57,7 @@ index 1f2d56b5..d3459168 100644
setGeometry_helper(rect); setGeometry_helper(rect);
if (window()->isVisible() && rect.isValid()) { if (window()->isVisible() && rect.isValid()) {
@@ -1044,6 +1049,13 @@ void QWaylandWindow::handleScreensChanged() @@ -1033,6 +1038,13 @@ void QWaylandWindow::handleScreensChanged()
QWindowSystemInterface::handleWindowScreenChanged(window(), newScreen->QPlatformScreen::screen()); QWindowSystemInterface::handleWindowScreenChanged(window(), newScreen->QPlatformScreen::screen());
mLastReportedScreen = newScreen; mLastReportedScreen = newScreen;
@ -72,7 +72,7 @@ index 1f2d56b5..d3459168 100644
int scale = newScreen->isPlaceholder() ? 1 : static_cast<QWaylandScreen *>(newScreen)->scale(); int scale = newScreen->isPlaceholder() ? 1 : static_cast<QWaylandScreen *>(newScreen)->scale();
if (scale != mScale) { if (scale != mScale) {
diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h
index e18609d9..a8ee2696 100644 index ea3d1995..487a91a6 100644
--- a/src/client/qwaylandwindow_p.h --- a/src/client/qwaylandwindow_p.h
+++ b/src/client/qwaylandwindow_p.h +++ b/src/client/qwaylandwindow_p.h
@@ -98,6 +98,9 @@ public: @@ -98,6 +98,9 @@ public:
@ -86,5 +86,5 @@ index e18609d9..a8ee2696 100644
virtual void ensureSize(); virtual void ensureSize();
WId winId() const override; WId winId() const override;
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From dd605d5fec6921a7befbfe2c40c2ae87935aa9c4 Mon Sep 17 00:00:00 2001 From 3b29b796f98721cb52c89a56e28ff8f9b830ebc5 Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org> From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Thu, 17 Nov 2022 15:25:37 +0200 Date: Thu, 17 Nov 2022 15:25:37 +0200
Subject: [PATCH 44/55] Client: Add F_SEAL_SHRINK seal to shm backing file Subject: [PATCH 40/51] Client: Add F_SEAL_SHRINK seal to shm backing file
This lets libwayland-server avoid installing a SIGBUS handler when it This lets libwayland-server avoid installing a SIGBUS handler when it
wants to mmap() the backing file and access the contents of shared wants to mmap() the backing file and access the contents of shared
@ -49,5 +49,5 @@ index dc7ff670..98acd42d 100644
QScopedPointer<QFile> filePointer; QScopedPointer<QFile> filePointer;
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From dea12f0bb5729de6c1a31b03b7e79710baf96b63 Mon Sep 17 00:00:00 2001 From 36a9d60c3ed05e2ec8faf7e81946becfaeb2f1d5 Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org> From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Mon, 21 Nov 2022 18:39:40 +0200 Date: Mon, 21 Nov 2022 18:39:40 +0200
Subject: [PATCH 45/55] Client: Call wl_output_release() upon QWaylandScreen Subject: [PATCH 41/51] Client: Call wl_output_release() upon QWaylandScreen
destruction destruction
It ensures that the proxy gets destroyed. It ensures that the proxy gets destroyed.
@ -27,5 +27,5 @@ index 7c2d9be3..64ae4fe7 100644
uint QWaylandScreen::requiredEvents() const uint QWaylandScreen::requiredEvents() const
-- --
2.40.0 2.40.1

View File

@ -1,109 +0,0 @@
From 1012f1d4b5753ad63da3cca1226fb034e297ae6d Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Tue, 8 Nov 2022 16:10:18 +0200
Subject: [PATCH 41/55] Client: Ensure that wl_surface lives as long as qtquick
render thread needs it
wl_surface can be destroyed while qtquick render thread still uses it.
That can end up in eglSwapBuffers() using defunct wl_surface, which will
eventually lead to a crash due to the compositor posting an error.
This is partially cherry-pick of dff579147b07cd15888a47c303e36684e9930f9f
Change-Id: I044f40dd64e6672027a833379b57ccd9973d8305
---
src/client/qwaylandwindow.cpp | 13 ++++++++++++-
src/client/qwaylandwindow_p.h | 3 +++
.../client/wayland-egl/qwaylandglcontext.cpp | 6 +++++-
3 files changed, 20 insertions(+), 2 deletions(-)
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index 4ddf9fbe..1f2d56b5 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -76,6 +76,7 @@ QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr;
QWaylandWindow::QWaylandWindow(QWindow *window, QWaylandDisplay *display)
: QPlatformWindow(window)
, mDisplay(display)
+ , mSurfaceLock(QReadWriteLock::Recursive)
, mResizeAfterSwap(qEnvironmentVariableIsSet("QT_WAYLAND_RESIZE_AFTER_SWAP"))
{
{
@@ -237,6 +238,16 @@ bool QWaylandWindow::shouldCreateSubSurface() const
return QPlatformWindow::parent() != nullptr;
}
+void QWaylandWindow::beginFrame()
+{
+ mSurfaceLock.lockForRead();
+}
+
+void QWaylandWindow::endFrame()
+{
+ mSurfaceLock.unlock();
+}
+
void QWaylandWindow::reset()
{
closeChildPopups();
@@ -245,10 +256,10 @@ void QWaylandWindow::reset()
delete mSubSurfaceWindow;
mSubSurfaceWindow = nullptr;
- invalidateSurface();
if (mSurface) {
emit wlSurfaceDestroyed();
QWriteLocker lock(&mSurfaceLock);
+ invalidateSurface();
mSurface.reset();
}
diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h
index ea3d1995..e18609d9 100644
--- a/src/client/qwaylandwindow_p.h
+++ b/src/client/qwaylandwindow_p.h
@@ -207,6 +207,9 @@ public:
void handleUpdate();
void deliverUpdateRequest() override;
+ void beginFrame();
+ void endFrame();
+
void addChildPopup(QWaylandWindow* child);
void removeChildPopup(QWaylandWindow* child);
void closeChildPopups();
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
index c1f45fa6..5d6fb2bf 100644
--- a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
@@ -432,8 +432,10 @@ bool QWaylandGLContext::makeCurrent(QPlatformSurface *surface)
return true;
}
- if (window->isExposed())
+ if (window->isExposed()) {
+ window->beginFrame();
window->setCanResize(false);
+ }
if (m_decorationsContext != EGL_NO_CONTEXT && !window->decoration())
window->createDecoration();
@@ -449,6 +451,7 @@ bool QWaylandGLContext::makeCurrent(QPlatformSurface *surface)
if (!eglMakeCurrent(m_eglDisplay, eglSurface, eglSurface, m_context)) {
qWarning("QWaylandGLContext::makeCurrent: eglError: %x, this: %p \n", eglGetError(), this);
window->setCanResize(true);
+ window->endFrame();
return false;
}
@@ -502,6 +505,7 @@ void QWaylandGLContext::swapBuffers(QPlatformSurface *surface)
eglSwapBuffers(m_eglDisplay, eglSurface);
window->setCanResize(true);
+ window->endFrame();
}
GLuint QWaylandGLContext::defaultFramebufferObject(QPlatformSurface *surface) const
--
2.40.0

View File

@ -1,7 +1,7 @@
From 8071f24324ffa8c556068816e009a5887e1a6ddd Mon Sep 17 00:00:00 2001 From 4293409e97c6ecfaec49b87818f9b439010187c9 Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org> From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Tue, 22 Nov 2022 12:33:41 +0200 Date: Tue, 22 Nov 2022 12:33:41 +0200
Subject: [PATCH 46/55] Client: Bump wl_output version Subject: [PATCH 42/51] Client: Bump wl_output version
wl_output_release is available starting with wl_output v3. wl_output_release is available starting with wl_output v3.
@ -26,5 +26,5 @@ index 64ae4fe7..5537dafd 100644
, mWaylandDisplay(waylandDisplay) , mWaylandDisplay(waylandDisplay)
, mOutputName(QStringLiteral("Screen%1").arg(id)) , mOutputName(QStringLiteral("Screen%1").arg(id))
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From ef5b1f40b684927f73bc04ab84c396be074cb61e Mon Sep 17 00:00:00 2001 From 7c43759079528c33c30c4a823de7fb2dff6acd27 Mon Sep 17 00:00:00 2001
From: Weng Xuetian <wengxt@gmail.com> From: Weng Xuetian <wengxt@gmail.com>
Date: Sun, 27 Nov 2022 12:44:40 -0800 Date: Sun, 27 Nov 2022 12:44:40 -0800
Subject: [PATCH 47/55] Fix frame sync related to unprotected multithread Subject: [PATCH 43/51] Fix frame sync related to unprotected multithread
access access
There is a few crashes happens in real life that frame callback is There is a few crashes happens in real life that frame callback is
@ -162,5 +162,5 @@ index 487a91a6..2f219d8c 100644
static QWaylandWindow *mMouseGrab; static QWaylandWindow *mMouseGrab;
-- --
2.40.0 2.40.1

View File

@ -1,103 +0,0 @@
From 3813da4b6d88320b42a7d91ae100e1567113ee72 Mon Sep 17 00:00:00 2001
From: David Edmundson <kde@davidedmundson.co.uk>
Date: Mon, 14 Nov 2022 10:43:25 +0000
Subject: [PATCH 43/55] Revert "Client: Ensure that wl_surface lives as long as
qtquick render thread needs it"
This reverts commit 81a7702a87f386a60a0ac8c902e203daae044d81
---
src/client/qwaylandwindow.cpp | 13 +------------
src/client/qwaylandwindow_p.h | 3 ---
.../client/wayland-egl/qwaylandglcontext.cpp | 6 +-----
3 files changed, 2 insertions(+), 20 deletions(-)
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
index d3459168..f322a8d6 100644
--- a/src/client/qwaylandwindow.cpp
+++ b/src/client/qwaylandwindow.cpp
@@ -76,7 +76,6 @@ QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr;
QWaylandWindow::QWaylandWindow(QWindow *window, QWaylandDisplay *display)
: QPlatformWindow(window)
, mDisplay(display)
- , mSurfaceLock(QReadWriteLock::Recursive)
, mResizeAfterSwap(qEnvironmentVariableIsSet("QT_WAYLAND_RESIZE_AFTER_SWAP"))
{
{
@@ -238,16 +237,6 @@ bool QWaylandWindow::shouldCreateSubSurface() const
return QPlatformWindow::parent() != nullptr;
}
-void QWaylandWindow::beginFrame()
-{
- mSurfaceLock.lockForRead();
-}
-
-void QWaylandWindow::endFrame()
-{
- mSurfaceLock.unlock();
-}
-
void QWaylandWindow::reset()
{
closeChildPopups();
@@ -256,10 +245,10 @@ void QWaylandWindow::reset()
delete mSubSurfaceWindow;
mSubSurfaceWindow = nullptr;
+ invalidateSurface();
if (mSurface) {
emit wlSurfaceDestroyed();
QWriteLocker lock(&mSurfaceLock);
- invalidateSurface();
mSurface.reset();
}
diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h
index a8ee2696..487a91a6 100644
--- a/src/client/qwaylandwindow_p.h
+++ b/src/client/qwaylandwindow_p.h
@@ -210,9 +210,6 @@ public:
void handleUpdate();
void deliverUpdateRequest() override;
- void beginFrame();
- void endFrame();
-
void addChildPopup(QWaylandWindow* child);
void removeChildPopup(QWaylandWindow* child);
void closeChildPopups();
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
index 5d6fb2bf..c1f45fa6 100644
--- a/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandglcontext.cpp
@@ -432,10 +432,8 @@ bool QWaylandGLContext::makeCurrent(QPlatformSurface *surface)
return true;
}
- if (window->isExposed()) {
- window->beginFrame();
+ if (window->isExposed())
window->setCanResize(false);
- }
if (m_decorationsContext != EGL_NO_CONTEXT && !window->decoration())
window->createDecoration();
@@ -451,7 +449,6 @@ bool QWaylandGLContext::makeCurrent(QPlatformSurface *surface)
if (!eglMakeCurrent(m_eglDisplay, eglSurface, eglSurface, m_context)) {
qWarning("QWaylandGLContext::makeCurrent: eglError: %x, this: %p \n", eglGetError(), this);
window->setCanResize(true);
- window->endFrame();
return false;
}
@@ -505,7 +502,6 @@ void QWaylandGLContext::swapBuffers(QPlatformSurface *surface)
eglSwapBuffers(m_eglDisplay, eglSurface);
window->setCanResize(true);
- window->endFrame();
}
GLuint QWaylandGLContext::defaultFramebufferObject(QPlatformSurface *surface) const
--
2.40.0

View File

@ -1,7 +1,7 @@
From 21e354e7b1878a243d29466b19084083df3d0db9 Mon Sep 17 00:00:00 2001 From 817655fa798fc2d640b4db006df229c335e02c3b Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org> From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Tue, 27 Sep 2022 22:05:07 +0300 Date: Tue, 27 Sep 2022 22:05:07 +0300
Subject: [PATCH 48/55] Client: Handle zwp_primary_selection_device_manager_v1 Subject: [PATCH 44/51] Client: Handle zwp_primary_selection_device_manager_v1
global removal global removal
The zwp_primary_selection_device_manager_v1 global can be withdrawn if The zwp_primary_selection_device_manager_v1 global can be withdrawn if
@ -62,5 +62,5 @@ index 832f9678..ea508771 100644
QWaylandPrimarySelectionDeviceV1 *QWaylandPrimarySelectionDeviceManagerV1::createDevice(QWaylandInputDevice *seat) QWaylandPrimarySelectionDeviceV1 *QWaylandPrimarySelectionDeviceManagerV1::createDevice(QWaylandInputDevice *seat)
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From c12b0ed6db709e2af40ab3687d880aff5c56b5c1 Mon Sep 17 00:00:00 2001 From 9e03f149e70896d92b51d9c25af681ddc2b5acfb Mon Sep 17 00:00:00 2001
From: Aleix Pol <aleixpol@kde.org> From: Aleix Pol <aleixpol@kde.org>
Date: Mon, 19 Dec 2022 15:31:03 +0100 Date: Mon, 19 Dec 2022 15:31:03 +0100
Subject: [PATCH 49/55] Fixes the build on CentOS Subject: [PATCH 45/51] Fixes the build on CentOS
Change-Id: I3c21972e7681be99b0f45c3ea3a57be285e4ff8e Change-Id: I3c21972e7681be99b0f45c3ea3a57be285e4ff8e
--- ---
@ -22,5 +22,5 @@ index 98acd42d..41cffdf7 100644
if (fd >= 0) if (fd >= 0)
fcntl(fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_SEAL); fcntl(fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_SEAL);
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From d04d4c7fe2e00285e7d70da42094f213e13c6ed8 Mon Sep 17 00:00:00 2001 From 5028633b140c013b14a487889eeef992233d4edf Mon Sep 17 00:00:00 2001
From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io> From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Date: Mon, 23 May 2022 09:47:24 +0200 Date: Mon, 23 May 2022 09:47:24 +0200
Subject: [PATCH 50/55] client: Avoid protocol error with invalid min/max size Subject: [PATCH 46/51] client: Avoid protocol error with invalid min/max size
If the application sets an invalid minimum and maximum size If the application sets an invalid minimum and maximum size
(where the minimum is higher than the maximum), then we (where the minimum is higher than the maximum), then we
@ -52,5 +52,5 @@ index ead99989..ad666129 100644
maxHeight = 0; maxHeight = 0;
m_toplevel->set_max_size(maxWidth, maxHeight); m_toplevel->set_max_size(maxWidth, maxHeight);
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From fbb9d65cf158bcf63440e9839acae9238ad4e0a7 Mon Sep 17 00:00:00 2001 From aeb7bf67a99fecf5f4e49ba7c49edf9c8b9db2b6 Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org> From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Tue, 22 Nov 2022 23:27:34 +0200 Date: Tue, 22 Nov 2022 23:27:34 +0200
Subject: [PATCH 51/55] Client: Fix handling of Qt::BlankCursor Subject: [PATCH 47/51] Client: Fix handling of Qt::BlankCursor
The cursor may not be properly set when a window has Qt::BlankCursor and The cursor may not be properly set when a window has Qt::BlankCursor and
it's shown. In that case, the cursor surface may not be present and it's shown. In that case, the cursor surface may not be present and
@ -34,5 +34,5 @@ index 5b880984..9a0fe49d 100644
} }
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 6897f62f603df049135347cf402a7a4037092263 Mon Sep 17 00:00:00 2001 From 2e4c35db38a55243bc2458dc87cc9ff6afb81586 Mon Sep 17 00:00:00 2001
From: Marco Martin <notmart@gmail.com> From: Marco Martin <notmart@gmail.com>
Date: Fri, 24 Feb 2023 17:40:48 +0100 Date: Fri, 24 Feb 2023 17:40:48 +0100
Subject: [PATCH 52/55] client: Force a roundtrip when an XdgOutput is not Subject: [PATCH 48/51] client: Force a roundtrip when an XdgOutput is not
ready yet ready yet
Is possible that the server sends a surface_enter before Is possible that the server sends a surface_enter before
@ -113,5 +113,5 @@ index 80429608..68e8d77a 100644
QCOMPOSITOR_TEST_MAIN(tst_xdgoutput) QCOMPOSITOR_TEST_MAIN(tst_xdgoutput)
#include "tst_xdgoutput.moc" #include "tst_xdgoutput.moc"
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 31eab11d3b6697a76cc7802d02e525c1152a42c2 Mon Sep 17 00:00:00 2001 From dd8640794264449cb978765029fc4713f3fb31b9 Mon Sep 17 00:00:00 2001
From: Tang Haixiang <tanghaixiang@uniontech.com> From: Tang Haixiang <tanghaixiang@uniontech.com>
Date: Thu, 22 Dec 2022 15:19:53 +0800 Date: Thu, 22 Dec 2022 15:19:53 +0800
Subject: [PATCH 53/55] Client: Manage QMimeData lifecycle Subject: [PATCH 49/51] Client: Manage QMimeData lifecycle
QMimeData is created by user, it is not taken care of in qtwayland, QMimeData is created by user, it is not taken care of in qtwayland,
which will cause memory leak. which will cause memory leak.
@ -134,5 +134,5 @@ index 96f07bc3..14d1542d 100644
void cancelled(); void cancelled();
void finished(); void finished();
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From 18c2bcec31f68aafd66d7ec503ec6511ca804d07 Mon Sep 17 00:00:00 2001 From 346cebf39b90f7fe012f57e66d493634aba20f89 Mon Sep 17 00:00:00 2001
From: Aleix Pol <aleixpol@kde.org> From: Aleix Pol <aleixpol@kde.org>
Date: Mon, 6 Mar 2023 01:11:45 +0100 Date: Mon, 6 Mar 2023 01:11:45 +0100
Subject: [PATCH 54/55] client: Do not cast placeholder screens to Subject: [PATCH 50/51] client: Do not cast placeholder screens to
QWaylandScreen QWaylandScreen
It's wrong to C-cast an object to a class that isn't theirs. Check if it It's wrong to C-cast an object to a class that isn't theirs. Check if it
@ -30,5 +30,5 @@ index bf54a1a0..9763c312 100644
return nullptr; return nullptr;
-- --
2.40.0 2.40.1

View File

@ -1,7 +1,7 @@
From c4c3fc69250c01cb35aaae5ea1ea2bcc8236dff0 Mon Sep 17 00:00:00 2001 From aabaa4efd1d284f07c3cb5b8a7d62a9143701bc4 Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org> From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Thu, 12 Jan 2023 14:49:25 +0200 Date: Thu, 12 Jan 2023 14:49:25 +0200
Subject: [PATCH 55/55] Client: Remove flip popup constraints Subject: [PATCH 51/51] Client: Remove flip popup constraints
xdg_positioner doesn't have good anchor rect and other needed xdg_positioner doesn't have good anchor rect and other needed
information so the compositor can properly flip popups. In some windows information so the compositor can properly flip popups. In some windows
@ -37,5 +37,5 @@ index ad666129..822b385c 100644
positioner->destroy(); positioner->destroy();
-- --
2.40.0 2.40.1

View File

@ -2,7 +2,7 @@
Summary: Qt5 - Wayland platform support and QtCompositor module Summary: Qt5 - Wayland platform support and QtCompositor module
Name: qt5-%{qt_module} Name: qt5-%{qt_module}
Version: 5.15.9 Version: 5.15.10
Release: 1%{?dist} Release: 1%{?dist}
License: LGPL-3.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0 License: LGPL-3.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0
@ -43,33 +43,28 @@ Patch26: 0026-use-poll-2-when-reading-from-clipboard.patch
Patch27: 0027-Reduce-memory-leakage.patch Patch27: 0027-Reduce-memory-leakage.patch
Patch28: 0028-Fix-build-with-libcxx-missing-array-include.patch Patch28: 0028-Fix-build-with-libcxx-missing-array-include.patch
Patch29: 0029-Only-close-popup-in-the-the-hierchary.patch Patch29: 0029-Only-close-popup-in-the-the-hierchary.patch
Patch30: 0030-Build-fixes-for-GCC-11.patch Patch30: 0030-Check-pointer-for-null-before-use-in-ASSERT.patch
Patch31: 0031-Check-pointer-for-null-before-use-in-ASSERT.patch Patch31: 0031-Use-wl_surface.damage_buffer-on-the-client-side.patch
Patch32: 0032-Use-wl_surface.damage_buffer-on-the-client-side.patch Patch32: 0032-Client-clear-focus-on-touch-cancel.patch
Patch33: 0033-Client-clear-focus-on-touch-cancel.patch Patch33: 0033-Guard-mResizeDirty-by-the-correctMutex.patch
Patch34: 0034-Guard-mResizeDirty-by-the-correctMutex.patch Patch34: 0034-Fix-compile-tests.patch
Patch35: 0035-client-Synthesize-enter-leave-event-for-popup-in-xdg.patch Patch35: 0035-Use-CRLF-line-delimiter-for-text-uri-list-data.patch
Patch36: 0036-Fix-compile-tests.patch Patch36: 0036-Avoid-calling-requestUpdate-from-wrong-thread.patch
Patch37: 0037-Use-CRLF-line-delimiter-for-text-uri-list-data.patch Patch37: 0037-Call-finishDrag-in-QWaylandDataDevice-dragSourceCanc.patch
Patch38: 0038-Avoid-calling-requestUpdate-from-wrong-thread.patch Patch38: 0038-Hold-surface-read-lock-throughout-QWaylandEglWindow-.patch
Patch39: 0039-Call-finishDrag-in-QWaylandDataDevice-dragSourceCanc.patch Patch39: 0039-Keep-toplevel-windows-in-the-top-left-corner-of-the-.patch
Patch40: 0040-Hold-surface-read-lock-throughout-QWaylandEglWindow-.patch Patch40: 0040-Client-Add-F_SEAL_SHRINK-seal-to-shm-backing-file.patch
Patch41: 0041-Client-Ensure-that-wl_surface-lives-as-long-as-qtqui.patch Patch41: 0041-Client-Call-wl_output_release-upon-QWaylandScreen-de.patch
Patch42: 0042-Keep-toplevel-windows-in-the-top-left-corner-of-the-.patch Patch42: 0042-Client-Bump-wl_output-version.patch
Patch43: 0043-Revert-Client-Ensure-that-wl_surface-lives-as-long-a.patch Patch43: 0043-Fix-frame-sync-related-to-unprotected-multithread-ac.patch
Patch44: 0044-Client-Add-F_SEAL_SHRINK-seal-to-shm-backing-file.patch Patch44: 0044-Client-Handle-zwp_primary_selection_device_manager_v.patch
Patch45: 0045-Client-Call-wl_output_release-upon-QWaylandScreen-de.patch Patch45: 0045-Fixes-the-build-on-CentOS.patch
Patch46: 0046-Client-Bump-wl_output-version.patch Patch46: 0046-client-Avoid-protocol-error-with-invalid-min-max-siz.patch
Patch47: 0047-Fix-frame-sync-related-to-unprotected-multithread-ac.patch Patch47: 0047-Client-Fix-handling-of-Qt-BlankCursor.patch
Patch48: 0048-Client-Handle-zwp_primary_selection_device_manager_v.patch Patch48: 0048-client-Force-a-roundtrip-when-an-XdgOutput-is-not-re.patch
Patch49: 0049-Fixes-the-build-on-CentOS.patch Patch49: 0049-Client-Manage-QMimeData-lifecycle.patch
Patch50: 0050-client-Avoid-protocol-error-with-invalid-min-max-siz.patch Patch50: 0050-client-Do-not-cast-placeholder-screens-to-QWaylandSc.patch
Patch51: 0051-Client-Fix-handling-of-Qt-BlankCursor.patch Patch51: 0051-Client-Remove-flip-popup-constraints.patch
Patch52: 0052-client-Force-a-roundtrip-when-an-XdgOutput-is-not-re.patch
Patch53: 0053-Client-Manage-QMimeData-lifecycle.patch
Patch54: 0054-client-Do-not-cast-placeholder-screens-to-QWaylandSc.patch
Patch55: 0055-Client-Remove-flip-popup-constraints.patch
Patch102: qtwayland-decoration-support-backports-from-qt6.patch Patch102: qtwayland-decoration-support-backports-from-qt6.patch
@ -180,6 +175,9 @@ popd
%changelog %changelog
* Mon Jun 12 2023 Jan Grulich <jgrulich@redhat.com> - 5.15.10-1
- 5.15.10
* Tue Apr 11 2023 Jan Grulich <jgrulich@redhat.com> * Tue Apr 11 2023 Jan Grulich <jgrulich@redhat.com>
- 5.15.9 - 5.15.9

View File

@ -1 +1 @@
SHA512 (qtwayland-everywhere-opensource-src-5.15.9.tar.xz) = d108d63ceeb3b1a8905ad7f53a7271fca6a3506679d352b7290cdf8c00e1c180b6c561ee013a674002b89e23f58cfb7b909dfc5a8fdec6cece7e0a782be77978 SHA512 (qtwayland-everywhere-opensource-src-5.15.10.tar.xz) = 214b1fec7dfd815d148a7485f7811e623b06d172e58e4ee3167264a4e4b8f4aeec11474e574f91652a0bd3a48476a6747cad468f1e5035c49a55a96fc1400899