5.15.9
This commit is contained in:
parent
2fc9df8fb4
commit
e5cf13418b
1
.gitignore
vendored
1
.gitignore
vendored
@ -16,3 +16,4 @@
|
|||||||
/qtwayland-everywhere-opensource-src-5.15.6.tar.xz
|
/qtwayland-everywhere-opensource-src-5.15.6.tar.xz
|
||||||
/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
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From 32471d114c621e3e6c89a4b7090543a8ff47c0a8 Mon Sep 17 00:00:00 2001
|
From 4ddf70b1ed7c5baddef41c549d04917b9dec7d0f 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/57] Client: Announce an output after receiving more
|
Subject: [PATCH 01/55] 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.39.0
|
2.40.0
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From 4ce9dacc726c61aca80fa283decb2b030bf826db Mon Sep 17 00:00:00 2001
|
From a9bcc5dc553b5a307a5bdcb6e1d92058e0257c7c 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/57] Fix issue with repeated window size changes
|
Subject: [PATCH 02/55] 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
|
||||||
@ -20,10 +20,10 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|||||||
2 files changed, 4 insertions(+), 1 deletion(-)
|
2 files changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
||||||
index 7889f575..201b583b 100644
|
index 57d4eb6b..13dd747a 100644
|
||||||
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
||||||
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
||||||
@@ -131,14 +131,16 @@ void QWaylandEglWindow::updateSurface(bool create)
|
@@ -122,14 +122,16 @@ void QWaylandEglWindow::updateSurface(bool create)
|
||||||
if (!disableResizeCheck) {
|
if (!disableResizeCheck) {
|
||||||
wl_egl_window_get_attached_size(m_waylandEglWindow, ¤t_width, ¤t_height);
|
wl_egl_window_get_attached_size(m_waylandEglWindow, ¤t_width, ¤t_height);
|
||||||
}
|
}
|
||||||
@ -42,10 +42,10 @@ index 7889f575..201b583b 100644
|
|||||||
|
|
||||||
if (!m_eglSurface && m_waylandEglWindow && create) {
|
if (!m_eglSurface && m_waylandEglWindow && create) {
|
||||||
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
|
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
|
||||||
index 5b1f4d56..0079dfef 100644
|
index 6c8f04ec..94c56325 100644
|
||||||
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
|
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
|
||||||
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
|
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.h
|
||||||
@@ -88,6 +88,7 @@ private:
|
@@ -87,6 +87,7 @@ private:
|
||||||
mutable QOpenGLFramebufferObject *m_contentFBO = nullptr;
|
mutable QOpenGLFramebufferObject *m_contentFBO = nullptr;
|
||||||
|
|
||||||
QSurfaceFormat m_format;
|
QSurfaceFormat m_format;
|
||||||
@ -54,5 +54,5 @@ index 5b1f4d56..0079dfef 100644
|
|||||||
|
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From b94794e343a6aacb4eaab3890163d9d9f1755c44 Mon Sep 17 00:00:00 2001
|
From eb8e933841d66f0ebe071a170a9af995c2b07b0d 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/57] Client: Connect drags being accepted to updating the
|
Subject: [PATCH 03/55] 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.39.0
|
2.40.0
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From 53322088f924decda883293a48e165619d309c7f Mon Sep 17 00:00:00 2001
|
From 9d16197f5e888b68cdf98165f46dcc9ac4dd9820 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/57] Client: Disconnect registry listener on destruction
|
Subject: [PATCH 04/55] 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.39.0
|
2.40.0
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From be78c471e94c7f0906318fc21a1509d90bb730aa Mon Sep 17 00:00:00 2001
|
From 8256c6d8bb0f456ad27031bad1cce916c0c29740 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/57] Client: Set XdgShell size hints before the first commit
|
Subject: [PATCH 05/55] 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 f3e3c330..eb317f3a 100644
|
index f50e1c0e..1f51562b 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()
|
||||||
@ -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.39.0
|
2.40.0
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From d9479064ef2e669cb79c200ee1db7e4f5e145f1f Mon Sep 17 00:00:00 2001
|
From bea02a7b4bce8cc3b2a7bce10c53fccc9aedef1e 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/57] Fix build
|
Subject: [PATCH 06/55] 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.39.0
|
2.40.0
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From f1e0f3caca97331b02782c4a367366078ba36b4d Mon Sep 17 00:00:00 2001
|
From 418580420c34c1a81fd5a4d872e41dc467c124d0 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/57] Fix: remove listener
|
Subject: [PATCH 07/55] Fix: remove listener
|
||||||
|
|
||||||
Add the operation for removing the listener form listener list
|
Add the operation for removing the listener form listener list
|
||||||
|
|
||||||
@ -13,10 +13,10 @@ Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|||||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
||||||
index f10c1f79..e0dfe8b2 100644
|
index 78e387bc..280e63bd 100644
|
||||||
--- a/src/client/qwaylanddisplay.cpp
|
--- a/src/client/qwaylanddisplay.cpp
|
||||||
+++ b/src/client/qwaylanddisplay.cpp
|
+++ b/src/client/qwaylanddisplay.cpp
|
||||||
@@ -452,9 +452,10 @@ void QWaylandDisplay::addRegistryListener(RegistryListener listener, void *data)
|
@@ -456,9 +456,10 @@ void QWaylandDisplay::addRegistryListener(RegistryListener listener, void *data)
|
||||||
|
|
||||||
void QWaylandDisplay::removeListener(RegistryListener listener, void *data)
|
void QWaylandDisplay::removeListener(RegistryListener listener, void *data)
|
||||||
{
|
{
|
||||||
@ -29,5 +29,5 @@ index f10c1f79..e0dfe8b2 100644
|
|||||||
|
|
||||||
uint32_t QWaylandDisplay::currentTimeMillisec()
|
uint32_t QWaylandDisplay::currentTimeMillisec()
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From 5fe9ca3aad86b82a2c43b33491605e53227cefad Mon Sep 17 00:00:00 2001
|
From 0bd8b57955c74fd7cadc3ceb1409c1705208f91e 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/57] Hook up queryKeyboardModifers
|
Subject: [PATCH 08/55] 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.
|
||||||
@ -19,7 +19,7 @@ Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|||||||
2 files changed, 10 insertions(+)
|
2 files changed, 10 insertions(+)
|
||||||
|
|
||||||
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
|
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
|
||||||
index c53ccb78..e5e7dd42 100644
|
index d257e2e3..cd8569b1 100644
|
||||||
--- a/src/client/qwaylandintegration.cpp
|
--- a/src/client/qwaylandintegration.cpp
|
||||||
+++ b/src/client/qwaylandintegration.cpp
|
+++ b/src/client/qwaylandintegration.cpp
|
||||||
@@ -262,6 +262,14 @@ QWaylandDisplay *QWaylandIntegration::display() const
|
@@ -262,6 +262,14 @@ QWaylandDisplay *QWaylandIntegration::display() const
|
||||||
@ -51,5 +51,5 @@ index ff70ae25..73b80658 100644
|
|||||||
|
|
||||||
QStringList themeNames() const override;
|
QStringList themeNames() const override;
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From c903b6486550f3dbbb8d4dc3ddd81aa60cc505fe Mon Sep 17 00:00:00 2001
|
From 046a799372b78ab843b26c2312bb563c0d50adcb 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/57] Correctly detect if image format is supported by
|
Subject: [PATCH 09/55] 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.39.0
|
2.40.0
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From f1c68a200d48545dee0e266a55953e5ddac475f5 Mon Sep 17 00:00:00 2001
|
From 3bb880d6b828f934f69608af958963c9eedc4e74 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/57] Client: Don't always recreate frame callbacks
|
Subject: [PATCH 10/55] 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
|
||||||
@ -38,10 +38,10 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|||||||
2 files changed, 6 insertions(+)
|
2 files changed, 6 insertions(+)
|
||||||
|
|
||||||
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 cb82857a..f13018be 100644
|
index df2dcdaa..23816895 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -1185,6 +1185,10 @@ void QWaylandWindow::requestUpdate()
|
@@ -1192,6 +1192,10 @@ void QWaylandWindow::requestUpdate()
|
||||||
void QWaylandWindow::handleUpdate()
|
void QWaylandWindow::handleUpdate()
|
||||||
{
|
{
|
||||||
qCDebug(lcWaylandBackingstore) << "handleUpdate" << QThread::currentThread();
|
qCDebug(lcWaylandBackingstore) << "handleUpdate" << QThread::currentThread();
|
||||||
@ -73,5 +73,5 @@ index 2fdd0a7c..e2593314 100644
|
|||||||
|
|
||||||
void tst_xdgshell::popup()
|
void tst_xdgshell::popup()
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From a3fcf0c111a96f3dd69ae51366fe7e167d7bac31 Mon Sep 17 00:00:00 2001
|
From a0ab21120ae0d0976d1c554aa72f00d4b3d35de9 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/57] Client: Always destroy frame callback in the actual
|
Subject: [PATCH 11/55] 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
|
||||||
@ -23,7 +23,7 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|||||||
1 file changed, 5 insertions(+), 6 deletions(-)
|
1 file changed, 5 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
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 f13018be..4544dcec 100644
|
index 23816895..d3f28d68 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -635,9 +635,13 @@ void QWaylandWindow::commit()
|
@@ -635,9 +635,13 @@ void QWaylandWindow::commit()
|
||||||
@ -41,7 +41,7 @@ index f13018be..4544dcec 100644
|
|||||||
window->handleFrameCallback();
|
window->handleFrameCallback();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -1194,11 +1198,6 @@ void QWaylandWindow::handleUpdate()
|
@@ -1201,11 +1205,6 @@ void QWaylandWindow::handleUpdate()
|
||||||
if (!mSurface)
|
if (!mSurface)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -54,5 +54,5 @@ index f13018be..4544dcec 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.39.0
|
2.40.0
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From 2cee3d23545333b16c185c36769e4be05660efe7 Mon Sep 17 00:00:00 2001
|
From d40acfcc33ae9f8d105f196d1af03a640a02db0b 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/57] Wayland client: use wl_keyboard to determine active
|
Subject: [PATCH 12/55] Wayland client: use wl_keyboard to determine active
|
||||||
state
|
state
|
||||||
|
|
||||||
Commit f497a5bb87270174b8e0106b7eca1992d44ff15d made QWaylandDisplay
|
Commit f497a5bb87270174b8e0106b7eca1992d44ff15d made QWaylandDisplay
|
||||||
@ -46,10 +46,10 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|||||||
13 files changed, 39 insertions(+), 66 deletions(-)
|
13 files changed, 39 insertions(+), 66 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
||||||
index e0dfe8b2..27303110 100644
|
index 280e63bd..1568052e 100644
|
||||||
--- a/src/client/qwaylanddisplay.cpp
|
--- a/src/client/qwaylanddisplay.cpp
|
||||||
+++ b/src/client/qwaylanddisplay.cpp
|
+++ b/src/client/qwaylanddisplay.cpp
|
||||||
@@ -575,14 +575,10 @@ void QWaylandDisplay::handleKeyboardFocusChanged(QWaylandInputDevice *inputDevic
|
@@ -579,14 +579,10 @@ void QWaylandDisplay::handleKeyboardFocusChanged(QWaylandInputDevice *inputDevic
|
||||||
if (mLastKeyboardFocus == keyboardFocus)
|
if (mLastKeyboardFocus == keyboardFocus)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -68,7 +68,7 @@ index e0dfe8b2..27303110 100644
|
|||||||
|
|
||||||
mLastKeyboardFocus = keyboardFocus;
|
mLastKeyboardFocus = keyboardFocus;
|
||||||
}
|
}
|
||||||
@@ -627,6 +623,13 @@ QWaylandInputDevice *QWaylandDisplay::defaultInputDevice() const
|
@@ -631,6 +627,13 @@ QWaylandInputDevice *QWaylandDisplay::defaultInputDevice() const
|
||||||
return mInputDevices.isEmpty() ? 0 : mInputDevices.first();
|
return mInputDevices.isEmpty() ? 0 : mInputDevices.first();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -83,10 +83,10 @@ index e0dfe8b2..27303110 100644
|
|||||||
|
|
||||||
QWaylandCursor *QWaylandDisplay::waylandCursor()
|
QWaylandCursor *QWaylandDisplay::waylandCursor()
|
||||||
diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
|
diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
|
||||||
index 3b092bc8..09a1736a 100644
|
index 1bad8b67..15104d65 100644
|
||||||
--- a/src/client/qwaylanddisplay_p.h
|
--- a/src/client/qwaylanddisplay_p.h
|
||||||
+++ b/src/client/qwaylanddisplay_p.h
|
+++ b/src/client/qwaylanddisplay_p.h
|
||||||
@@ -215,6 +215,7 @@ public:
|
@@ -219,6 +219,7 @@ public:
|
||||||
void destroyFrameQueue(const FrameQueue &q);
|
void destroyFrameQueue(const FrameQueue &q);
|
||||||
void dispatchQueueWhile(wl_event_queue *queue, std::function<bool()> condition, int timeout = -1);
|
void dispatchQueueWhile(wl_event_queue *queue, std::function<bool()> condition, int timeout = -1);
|
||||||
|
|
||||||
@ -95,7 +95,7 @@ index 3b092bc8..09a1736a 100644
|
|||||||
void blockingReadEvents();
|
void blockingReadEvents();
|
||||||
void flushRequests();
|
void flushRequests();
|
||||||
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 4544dcec..0b64b0f4 100644
|
index d3f28d68..b363c352 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -96,7 +96,6 @@ QWaylandWindow::QWaylandWindow(QWindow *window, QWaylandDisplay *display)
|
@@ -96,7 +96,6 @@ QWaylandWindow::QWaylandWindow(QWindow *window, QWaylandDisplay *display)
|
||||||
@ -115,7 +115,7 @@ index 4544dcec..0b64b0f4 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
QWaylandWindow *QWaylandWindow::fromWlSurface(::wl_surface *surface)
|
QWaylandWindow *QWaylandWindow::fromWlSurface(::wl_surface *surface)
|
||||||
@@ -1098,10 +1099,18 @@ bool QWaylandWindow::setMouseGrabEnabled(bool grab)
|
@@ -1105,10 +1106,18 @@ bool QWaylandWindow::setMouseGrabEnabled(bool grab)
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -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 eb317f3a..11706924 100644
|
index 1f51562b..b7383e19 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.39.0
|
2.40.0
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From b1b87bf639d46605d63e07eecd1135d9e5e4ffac Mon Sep 17 00:00:00 2001
|
From 23327bb4cdc00b47e0f96efca2fe494540f01601 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/57] Client: do not empty clipboard when a new popup/window
|
Subject: [PATCH 13/55] 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
|
||||||
@ -21,10 +21,10 @@ Cherry-pick: 1e57ebd501cfc2255300392cd4565cd034efeed8
|
|||||||
2 files changed, 13 insertions(+), 8 deletions(-)
|
2 files changed, 13 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
||||||
index 27303110..9f595af3 100644
|
index 1568052e..aa8808e9 100644
|
||||||
--- a/src/client/qwaylanddisplay.cpp
|
--- a/src/client/qwaylanddisplay.cpp
|
||||||
+++ b/src/client/qwaylanddisplay.cpp
|
+++ b/src/client/qwaylanddisplay.cpp
|
||||||
@@ -597,6 +597,19 @@ void QWaylandDisplay::handleWaylandSync()
|
@@ -601,6 +601,19 @@ void QWaylandDisplay::handleWaylandSync()
|
||||||
QWindow *activeWindow = mActiveWindows.empty() ? nullptr : mActiveWindows.last()->window();
|
QWindow *activeWindow = mActiveWindows.empty() ? nullptr : mActiveWindows.last()->window();
|
||||||
if (activeWindow != QGuiApplication::focusWindow())
|
if (activeWindow != QGuiApplication::focusWindow())
|
||||||
QWindowSystemInterface::handleWindowActivated(activeWindow);
|
QWindowSystemInterface::handleWindowActivated(activeWindow);
|
||||||
@ -45,10 +45,10 @@ index 27303110..9f595af3 100644
|
|||||||
|
|
||||||
const wl_callback_listener QWaylandDisplay::syncCallbackListener = {
|
const wl_callback_listener QWaylandDisplay::syncCallbackListener = {
|
||||||
diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp
|
diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp
|
||||||
index 613fe862..aaec7eb8 100644
|
index e931d1f5..5d704795 100644
|
||||||
--- a/src/client/qwaylandinputdevice.cpp
|
--- a/src/client/qwaylandinputdevice.cpp
|
||||||
+++ b/src/client/qwaylandinputdevice.cpp
|
+++ b/src/client/qwaylandinputdevice.cpp
|
||||||
@@ -1300,14 +1300,6 @@ void QWaylandInputDevice::Keyboard::handleFocusDestroyed()
|
@@ -1304,14 +1304,6 @@ void QWaylandInputDevice::Keyboard::handleFocusDestroyed()
|
||||||
void QWaylandInputDevice::Keyboard::handleFocusLost()
|
void QWaylandInputDevice::Keyboard::handleFocusLost()
|
||||||
{
|
{
|
||||||
mFocus = nullptr;
|
mFocus = nullptr;
|
||||||
@ -64,5 +64,5 @@ index 613fe862..aaec7eb8 100644
|
|||||||
mRepeatTimer.stop();
|
mRepeatTimer.stop();
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
From 3eaa09ead7750e9a484d0f4dc44d60ee48e54cdd Mon Sep 17 00:00:00 2001
|
From e0e004c77140da5e454dadf4d6809c1603b5735d 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 15/57] Client: Implement DataDeviceV3
|
Subject: [PATCH 14/55] Client: Implement DataDeviceV3
|
||||||
|
|
||||||
DataDeviceV2 fixes a leak of DataDevice resources.
|
DataDeviceV2 fixes a leak of DataDevice resources.
|
||||||
|
|
||||||
@ -409,10 +409,10 @@ index 25afff79..96f07bc3 100644
|
|||||||
|
|
||||||
}
|
}
|
||||||
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
||||||
index 9f595af3..ea344c61 100644
|
index aa8808e9..2d298532 100644
|
||||||
--- a/src/client/qwaylanddisplay.cpp
|
--- a/src/client/qwaylanddisplay.cpp
|
||||||
+++ b/src/client/qwaylanddisplay.cpp
|
+++ b/src/client/qwaylanddisplay.cpp
|
||||||
@@ -354,7 +354,7 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
|
@@ -356,7 +356,7 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
|
||||||
mInputDevices.append(inputDevice);
|
mInputDevices.append(inputDevice);
|
||||||
#if QT_CONFIG(wayland_datadevice)
|
#if QT_CONFIG(wayland_datadevice)
|
||||||
} else if (interface == QStringLiteral("wl_data_device_manager")) {
|
} else if (interface == QStringLiteral("wl_data_device_manager")) {
|
||||||
@ -509,5 +509,5 @@ index 1568b3b9..067410d0 100644
|
|||||||
class DataDeviceCompositor : public DefaultCompositor {
|
class DataDeviceCompositor : public DefaultCompositor {
|
||||||
public:
|
public:
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
From 4a7cf632c3d1a5ad66e724b0de85342654ba4760 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Weng Xuetian <wengxt@gmail.com>
|
|
||||||
Date: Sat, 18 Dec 2021 23:42:49 -0800
|
|
||||||
Subject: [PATCH 14/57] Set preedit cursor when cursor equals to 0
|
|
||||||
|
|
||||||
Pick-to: 6.3 6.2 5.15
|
|
||||||
Change-Id: I832fbb22d973b36ac4ab51570fc53bc2e4c3ed58
|
|
||||||
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
||||||
(cherry picked from commit 719a55be13bdadfa659a732755f280e276a894bd)
|
|
||||||
---
|
|
||||||
src/shared/qwaylandinputmethodeventbuilder.cpp | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/qwaylandinputmethodeventbuilder.cpp b/src/shared/qwaylandinputmethodeventbuilder.cpp
|
|
||||||
index 526d0ef4..25be2509 100644
|
|
||||||
--- a/src/shared/qwaylandinputmethodeventbuilder.cpp
|
|
||||||
+++ b/src/shared/qwaylandinputmethodeventbuilder.cpp
|
|
||||||
@@ -151,7 +151,7 @@ QInputMethodEvent QWaylandInputMethodEventBuilder::buildPreedit(const QString &t
|
|
||||||
{
|
|
||||||
QList<QInputMethodEvent::Attribute> attributes;
|
|
||||||
|
|
||||||
- if (m_preeditCursor < 0) {
|
|
||||||
+ if (m_preeditCursor <= 0) {
|
|
||||||
attributes.append(QInputMethodEvent::Attribute(QInputMethodEvent::Cursor, 0, 0, QVariant()));
|
|
||||||
} else if (m_preeditCursor > 0) {
|
|
||||||
attributes.append(QInputMethodEvent::Attribute(QInputMethodEvent::Cursor, indexFromWayland(text, m_preeditCursor), 1, QVariant()));
|
|
||||||
--
|
|
||||||
2.39.0
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 072a3e85068c74cb63fd66bc9dcf7b0b5757a30b Mon Sep 17 00:00:00 2001
|
From f3900786ebe46aefbecbb2a37cb175846ca0dfc2 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 16/57] Client: Delay deletion of QDrag object until after
|
Subject: [PATCH 15/55] 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.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From b61579e7185d4f64ef896ec609428afe81e586e1 Mon Sep 17 00:00:00 2001
|
From 9edd2a05c79a1c40867440826c830c76136152da 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 17/57] Client: Avoid processing of events when showing windows
|
Subject: [PATCH 16/55] 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
|
||||||
@ -22,7 +22,7 @@ Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
|
|||||||
1 file changed, 1 deletion(-)
|
1 file changed, 1 deletion(-)
|
||||||
|
|
||||||
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 0b64b0f4..cc425818 100644
|
index b363c352..b98435ed 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -437,7 +437,6 @@ void QWaylandWindow::setVisible(bool visible)
|
@@ -437,7 +437,6 @@ void QWaylandWindow::setVisible(bool visible)
|
||||||
@ -34,5 +34,5 @@ index 0b64b0f4..cc425818 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.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From a68649f3a3f04b14238be9f327c5132da1f9fe27 Mon Sep 17 00:00:00 2001
|
From 5889bb845d951a7877201bca97ffe4bb2491d966 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 18/57] Handle registry_global out of constructor
|
Subject: [PATCH 17/55] 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
|
||||||
@ -17,10 +17,10 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|||||||
3 files changed, 17 insertions(+), 7 deletions(-)
|
3 files changed, 17 insertions(+), 7 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
||||||
index ea344c61..0f75cb7e 100644
|
index 2d298532..97fb8cbe 100644
|
||||||
--- a/src/client/qwaylanddisplay.cpp
|
--- a/src/client/qwaylanddisplay.cpp
|
||||||
+++ b/src/client/qwaylanddisplay.cpp
|
+++ b/src/client/qwaylanddisplay.cpp
|
||||||
@@ -158,13 +158,6 @@ QWaylandDisplay::QWaylandDisplay(QWaylandIntegration *waylandIntegration)
|
@@ -160,13 +160,6 @@ QWaylandDisplay::QWaylandDisplay(QWaylandIntegration *waylandIntegration)
|
||||||
if (!mXkbContext)
|
if (!mXkbContext)
|
||||||
qCWarning(lcQpaWayland, "failed to create xkb context");
|
qCWarning(lcQpaWayland, "failed to create xkb context");
|
||||||
#endif
|
#endif
|
||||||
@ -34,7 +34,7 @@ index ea344c61..0f75cb7e 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
QWaylandDisplay::~QWaylandDisplay(void)
|
QWaylandDisplay::~QWaylandDisplay(void)
|
||||||
@@ -189,6 +182,18 @@ QWaylandDisplay::~QWaylandDisplay(void)
|
@@ -191,6 +184,18 @@ QWaylandDisplay::~QWaylandDisplay(void)
|
||||||
wl_display_disconnect(mDisplay);
|
wl_display_disconnect(mDisplay);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,10 +54,10 @@ index ea344c61..0f75cb7e 100644
|
|||||||
{
|
{
|
||||||
if (!mScreens.empty() || mPlaceholderScreen)
|
if (!mScreens.empty() || mPlaceholderScreen)
|
||||||
diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
|
diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
|
||||||
index 09a1736a..d9c8849f 100644
|
index 15104d65..49820255 100644
|
||||||
--- a/src/client/qwaylanddisplay_p.h
|
--- a/src/client/qwaylanddisplay_p.h
|
||||||
+++ b/src/client/qwaylanddisplay_p.h
|
+++ b/src/client/qwaylanddisplay_p.h
|
||||||
@@ -129,6 +129,8 @@ public:
|
@@ -131,6 +131,8 @@ public:
|
||||||
QWaylandDisplay(QWaylandIntegration *waylandIntegration);
|
QWaylandDisplay(QWaylandIntegration *waylandIntegration);
|
||||||
~QWaylandDisplay(void) override;
|
~QWaylandDisplay(void) override;
|
||||||
|
|
||||||
@ -67,7 +67,7 @@ index 09a1736a..d9c8849f 100644
|
|||||||
struct xkb_context *xkbContext() const { return mXkbContext.get(); }
|
struct xkb_context *xkbContext() const { return mXkbContext.get(); }
|
||||||
#endif
|
#endif
|
||||||
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
|
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
|
||||||
index e5e7dd42..f5632982 100644
|
index cd8569b1..8afecb31 100644
|
||||||
--- a/src/client/qwaylandintegration.cpp
|
--- a/src/client/qwaylandintegration.cpp
|
||||||
+++ b/src/client/qwaylandintegration.cpp
|
+++ b/src/client/qwaylandintegration.cpp
|
||||||
@@ -200,6 +200,9 @@ void QWaylandIntegration::initialize()
|
@@ -200,6 +200,9 @@ void QWaylandIntegration::initialize()
|
||||||
@ -81,5 +81,5 @@ index e5e7dd42..f5632982 100644
|
|||||||
mDisplay->ensureScreen();
|
mDisplay->ensureScreen();
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 848a4c047577d4800a03da2cb98e305702b220ae Mon Sep 17 00:00:00 2001
|
From 2e03c3b47fa91eb8db5b9a635c2f9dca2b4f5158 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 19/57] Connect flushRequest after forceRoundTrip
|
Subject: [PATCH 18/55] 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.
|
||||||
@ -14,7 +14,7 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|||||||
1 file changed, 7 insertions(+), 4 deletions(-)
|
1 file changed, 7 insertions(+), 4 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
|
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
|
||||||
index f5632982..3a6fa651 100644
|
index 8afecb31..661cea53 100644
|
||||||
--- a/src/client/qwaylandintegration.cpp
|
--- a/src/client/qwaylandintegration.cpp
|
||||||
+++ b/src/client/qwaylandintegration.cpp
|
+++ b/src/client/qwaylandintegration.cpp
|
||||||
@@ -192,10 +192,6 @@ QAbstractEventDispatcher *QWaylandIntegration::createEventDispatcher() const
|
@@ -192,10 +192,6 @@ QAbstractEventDispatcher *QWaylandIntegration::createEventDispatcher() const
|
||||||
@ -43,5 +43,5 @@ index f5632982..3a6fa651 100644
|
|||||||
mDisplay->ensureScreen();
|
mDisplay->ensureScreen();
|
||||||
}
|
}
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 920bdf21327c447e11a1edb8e75b153800025732 Mon Sep 17 00:00:00 2001
|
From d89cc9deab3f61cacfad71e8aa32d83d421d49da 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 20/57] Move the wayland socket polling to a separate event
|
Subject: [PATCH 19/55] 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,
|
||||||
@ -32,10 +32,10 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|||||||
5 files changed, 255 insertions(+), 108 deletions(-)
|
5 files changed, 255 insertions(+), 108 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
||||||
index 0f75cb7e..a7ce280a 100644
|
index 97fb8cbe..ebcdbd22 100644
|
||||||
--- a/src/client/qwaylanddisplay.cpp
|
--- a/src/client/qwaylanddisplay.cpp
|
||||||
+++ b/src/client/qwaylanddisplay.cpp
|
+++ b/src/client/qwaylanddisplay.cpp
|
||||||
@@ -85,10 +85,203 @@
|
@@ -87,10 +87,203 @@
|
||||||
|
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
|
||||||
@ -239,7 +239,7 @@ index 0f75cb7e..a7ce280a 100644
|
|||||||
Q_LOGGING_CATEGORY(lcQpaWayland, "qt.qpa.wayland"); // for general (uncategorized) Wayland platform logging
|
Q_LOGGING_CATEGORY(lcQpaWayland, "qt.qpa.wayland"); // for general (uncategorized) Wayland platform logging
|
||||||
|
|
||||||
struct wl_surface *QWaylandDisplay::createSurface(void *handle)
|
struct wl_surface *QWaylandDisplay::createSurface(void *handle)
|
||||||
@@ -162,6 +355,12 @@ QWaylandDisplay::QWaylandDisplay(QWaylandIntegration *waylandIntegration)
|
@@ -164,6 +357,12 @@ QWaylandDisplay::QWaylandDisplay(QWaylandIntegration *waylandIntegration)
|
||||||
|
|
||||||
QWaylandDisplay::~QWaylandDisplay(void)
|
QWaylandDisplay::~QWaylandDisplay(void)
|
||||||
{
|
{
|
||||||
@ -252,7 +252,7 @@ index 0f75cb7e..a7ce280a 100644
|
|||||||
if (mSyncCallback)
|
if (mSyncCallback)
|
||||||
wl_callback_destroy(mSyncCallback);
|
wl_callback_destroy(mSyncCallback);
|
||||||
|
|
||||||
@@ -208,98 +407,37 @@ void QWaylandDisplay::ensureScreen()
|
@@ -210,98 +409,37 @@ void QWaylandDisplay::ensureScreen()
|
||||||
|
|
||||||
void QWaylandDisplay::checkError() const
|
void QWaylandDisplay::checkError() const
|
||||||
{
|
{
|
||||||
@ -371,7 +371,7 @@ index 0f75cb7e..a7ce280a 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
QWaylandScreen *QWaylandDisplay::screenForOutput(struct wl_output *output) const
|
QWaylandScreen *QWaylandDisplay::screenForOutput(struct wl_output *output) const
|
||||||
@@ -674,4 +812,6 @@ QWaylandCursorTheme *QWaylandDisplay::loadCursorTheme(const QString &name, int p
|
@@ -678,4 +816,6 @@ QWaylandCursorTheme *QWaylandDisplay::loadCursorTheme(const QString &name, int p
|
||||||
|
|
||||||
} // namespace QtWaylandClient
|
} // namespace QtWaylandClient
|
||||||
|
|
||||||
@ -379,10 +379,10 @@ index 0f75cb7e..a7ce280a 100644
|
|||||||
+
|
+
|
||||||
QT_END_NAMESPACE
|
QT_END_NAMESPACE
|
||||||
diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
|
diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h
|
||||||
index d9c8849f..42bc661d 100644
|
index 49820255..cf91b924 100644
|
||||||
--- a/src/client/qwaylanddisplay_p.h
|
--- a/src/client/qwaylanddisplay_p.h
|
||||||
+++ b/src/client/qwaylanddisplay_p.h
|
+++ b/src/client/qwaylanddisplay_p.h
|
||||||
@@ -109,6 +109,7 @@ class QWaylandSurface;
|
@@ -111,6 +111,7 @@ class QWaylandSurface;
|
||||||
class QWaylandShellIntegration;
|
class QWaylandShellIntegration;
|
||||||
class QWaylandCursor;
|
class QWaylandCursor;
|
||||||
class QWaylandCursorTheme;
|
class QWaylandCursorTheme;
|
||||||
@ -390,7 +390,7 @@ index d9c8849f..42bc661d 100644
|
|||||||
|
|
||||||
typedef void (*RegistryListener)(void *data,
|
typedef void (*RegistryListener)(void *data,
|
||||||
struct wl_registry *registry,
|
struct wl_registry *registry,
|
||||||
@@ -120,12 +121,6 @@ class Q_WAYLAND_CLIENT_EXPORT QWaylandDisplay : public QObject, public QtWayland
|
@@ -122,12 +123,6 @@ class Q_WAYLAND_CLIENT_EXPORT QWaylandDisplay : public QObject, public QtWayland
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -403,7 +403,7 @@ index d9c8849f..42bc661d 100644
|
|||||||
QWaylandDisplay(QWaylandIntegration *waylandIntegration);
|
QWaylandDisplay(QWaylandIntegration *waylandIntegration);
|
||||||
~QWaylandDisplay(void) override;
|
~QWaylandDisplay(void) override;
|
||||||
|
|
||||||
@@ -212,12 +207,11 @@ public:
|
@@ -216,12 +211,11 @@ public:
|
||||||
void handleKeyboardFocusChanged(QWaylandInputDevice *inputDevice);
|
void handleKeyboardFocusChanged(QWaylandInputDevice *inputDevice);
|
||||||
void handleWindowDestroyed(QWaylandWindow *window);
|
void handleWindowDestroyed(QWaylandWindow *window);
|
||||||
|
|
||||||
@ -419,7 +419,7 @@ index d9c8849f..42bc661d 100644
|
|||||||
public slots:
|
public slots:
|
||||||
void blockingReadEvents();
|
void blockingReadEvents();
|
||||||
void flushRequests();
|
void flushRequests();
|
||||||
@@ -240,6 +234,9 @@ private:
|
@@ -244,6 +238,9 @@ private:
|
||||||
};
|
};
|
||||||
|
|
||||||
struct wl_display *mDisplay = nullptr;
|
struct wl_display *mDisplay = nullptr;
|
||||||
@ -429,7 +429,7 @@ index d9c8849f..42bc661d 100644
|
|||||||
QtWayland::wl_compositor mCompositor;
|
QtWayland::wl_compositor mCompositor;
|
||||||
QScopedPointer<QWaylandShm> mShm;
|
QScopedPointer<QWaylandShm> mShm;
|
||||||
QList<QWaylandScreen *> mWaitingScreens;
|
QList<QWaylandScreen *> mWaitingScreens;
|
||||||
@@ -276,11 +273,9 @@ private:
|
@@ -282,11 +279,9 @@ private:
|
||||||
QWaylandInputDevice *mLastInputDevice = nullptr;
|
QWaylandInputDevice *mLastInputDevice = nullptr;
|
||||||
QPointer<QWaylandWindow> mLastInputWindow;
|
QPointer<QWaylandWindow> mLastInputWindow;
|
||||||
QPointer<QWaylandWindow> mLastKeyboardFocus;
|
QPointer<QWaylandWindow> mLastKeyboardFocus;
|
||||||
@ -443,7 +443,7 @@ index d9c8849f..42bc661d 100644
|
|||||||
bool mClientSideInputContextRequested = !QPlatformInputContextFactory::requested().isNull();
|
bool mClientSideInputContextRequested = !QPlatformInputContextFactory::requested().isNull();
|
||||||
|
|
||||||
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
|
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
|
||||||
index 3a6fa651..3b876047 100644
|
index 661cea53..fbf00c6b 100644
|
||||||
--- a/src/client/qwaylandintegration.cpp
|
--- a/src/client/qwaylandintegration.cpp
|
||||||
+++ b/src/client/qwaylandintegration.cpp
|
+++ b/src/client/qwaylandintegration.cpp
|
||||||
@@ -192,9 +192,7 @@ QAbstractEventDispatcher *QWaylandIntegration::createEventDispatcher() const
|
@@ -192,9 +192,7 @@ QAbstractEventDispatcher *QWaylandIntegration::createEventDispatcher() const
|
||||||
@ -458,7 +458,7 @@ index 3a6fa651..3b876047 100644
|
|||||||
// Call after eventDispatcher is fully connected, for QWaylandDisplay::forceRoundTrip()
|
// Call after eventDispatcher is fully connected, for QWaylandDisplay::forceRoundTrip()
|
||||||
mDisplay->initialize();
|
mDisplay->initialize();
|
||||||
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 cc425818..13976320 100644
|
index b98435ed..292dd023 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -76,7 +76,6 @@ QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr;
|
@@ -76,7 +76,6 @@ QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr;
|
||||||
@ -506,7 +506,7 @@ index cc425818..13976320 100644
|
|||||||
|
|
||||||
if (mWaitingForFrameCallback) {
|
if (mWaitingForFrameCallback) {
|
||||||
qCDebug(lcWaylandBackingstore) << "Didn't receive frame callback in time, window should now be inexposed";
|
qCDebug(lcWaylandBackingstore) << "Didn't receive frame callback in time, window should now be inexposed";
|
||||||
@@ -1172,8 +1175,11 @@ void QWaylandWindow::requestUpdate()
|
@@ -1179,8 +1182,11 @@ void QWaylandWindow::requestUpdate()
|
||||||
Q_ASSERT(hasPendingUpdateRequest()); // should be set by QPA
|
Q_ASSERT(hasPendingUpdateRequest()); // should be set by QPA
|
||||||
|
|
||||||
// If we have a frame callback all is good and will be taken care of there
|
// If we have a frame callback all is good and will be taken care of there
|
||||||
@ -520,7 +520,7 @@ index cc425818..13976320 100644
|
|||||||
|
|
||||||
// If we've already called deliverUpdateRequest(), but haven't seen any attach+commit/swap yet
|
// If we've already called deliverUpdateRequest(), but haven't seen any attach+commit/swap yet
|
||||||
// This is a somewhat redundant behavior and might indicate a bug in the calling code, so log
|
// This is a somewhat redundant behavior and might indicate a bug in the calling code, so log
|
||||||
@@ -1186,7 +1192,12 @@ void QWaylandWindow::requestUpdate()
|
@@ -1193,7 +1199,12 @@ void QWaylandWindow::requestUpdate()
|
||||||
// so use invokeMethod to delay the delivery a bit.
|
// so use invokeMethod to delay the delivery a bit.
|
||||||
QMetaObject::invokeMethod(this, [this] {
|
QMetaObject::invokeMethod(this, [this] {
|
||||||
// Things might have changed in the meantime
|
// Things might have changed in the meantime
|
||||||
@ -534,7 +534,7 @@ index cc425818..13976320 100644
|
|||||||
deliverUpdateRequest();
|
deliverUpdateRequest();
|
||||||
}, Qt::QueuedConnection);
|
}, Qt::QueuedConnection);
|
||||||
}
|
}
|
||||||
@@ -1206,9 +1217,10 @@ void QWaylandWindow::handleUpdate()
|
@@ -1213,9 +1224,10 @@ void QWaylandWindow::handleUpdate()
|
||||||
if (!mSurface)
|
if (!mSurface)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
@ -547,7 +547,7 @@ index cc425818..13976320 100644
|
|||||||
mFrameCallback = wl_surface_frame(wrappedSurface);
|
mFrameCallback = wl_surface_frame(wrappedSurface);
|
||||||
wl_proxy_wrapper_destroy(wrappedSurface);
|
wl_proxy_wrapper_destroy(wrappedSurface);
|
||||||
wl_callback_add_listener(mFrameCallback, &QWaylandWindow::callbackListener, this);
|
wl_callback_add_listener(mFrameCallback, &QWaylandWindow::callbackListener, this);
|
||||||
@@ -1218,6 +1230,8 @@ void QWaylandWindow::handleUpdate()
|
@@ -1225,6 +1237,8 @@ void QWaylandWindow::handleUpdate()
|
||||||
// Start a timer for handling the case when the compositor stops sending frame callbacks.
|
// Start a timer for handling the case when the compositor stops sending frame callbacks.
|
||||||
if (mFrameCallbackTimeout > 0) {
|
if (mFrameCallbackTimeout > 0) {
|
||||||
QMetaObject::invokeMethod(this, [this] {
|
QMetaObject::invokeMethod(this, [this] {
|
||||||
@ -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.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 0aaf113e480900740f8c7e6ebd7acb1ea28cf40e Mon Sep 17 00:00:00 2001
|
From 58c67c6e8f2d94cef7f8eec072ebad031769e144 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 22/57] Client: Remove mWaitingForUpdateDelivery
|
Subject: [PATCH 20/55] 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
|
||||||
@ -23,7 +23,7 @@ Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|||||||
2 files changed, 12 insertions(+), 18 deletions(-)
|
2 files changed, 12 insertions(+), 18 deletions(-)
|
||||||
|
|
||||||
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 13976320..579a762a 100644
|
index 292dd023..de5af1bd 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -651,23 +651,18 @@ void QWaylandWindow::handleFrameCallback()
|
@@ -651,23 +651,18 @@ void QWaylandWindow::handleFrameCallback()
|
||||||
@ -75,5 +75,5 @@ index 54ac67a9..cf7ce879 100644
|
|||||||
QElapsedTimer mFrameCallbackElapsedTimer;
|
QElapsedTimer mFrameCallbackElapsedTimer;
|
||||||
struct ::wl_callback *mFrameCallback = nullptr;
|
struct ::wl_callback *mFrameCallback = nullptr;
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,29 +0,0 @@
|
|||||||
From 4a1969067ed737c3fa659242cf7e806cd86982e0 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Joni Poikelin <joni.poikelin@qt.io>
|
|
||||||
Date: Thu, 3 Feb 2022 14:01:50 +0200
|
|
||||||
Subject: [PATCH 21/57] Fix crash if no input method module could be loaded
|
|
||||||
|
|
||||||
Pick-to: 6.2 6.3 5.15
|
|
||||||
Change-Id: I8f346def616606a6c5540856bd08a84ee7ed5ca2
|
|
||||||
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
||||||
(cherry picked from commit 49fb7248f6ab7de046e2179c7861951ea1169e9b)
|
|
||||||
---
|
|
||||||
src/client/qwaylandintegration.cpp | 2 +-
|
|
||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
|
|
||||||
index 3b876047..fbf00c6b 100644
|
|
||||||
--- a/src/client/qwaylandintegration.cpp
|
|
||||||
+++ b/src/client/qwaylandintegration.cpp
|
|
||||||
@@ -491,7 +491,7 @@ void QWaylandIntegration::reconfigureInputContext()
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
- qCDebug(lcQpaWayland) << "using input method:" << inputContext()->metaObject()->className();
|
|
||||||
+ qCDebug(lcQpaWayland) << "using input method:" << (inputContext() ? inputContext()->metaObject()->className() : "<none>");
|
|
||||||
}
|
|
||||||
|
|
||||||
QWaylandShellIntegration *QWaylandIntegration::createShellIntegration(const QString &integrationName)
|
|
||||||
--
|
|
||||||
2.39.0
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 7b07d715203182c1f04ad450011a7e3623d1e8e8 Mon Sep 17 00:00:00 2001
|
From 71a1a9791df20307dd4eb688b0957d0f695823c5 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 25/57] client: Simplify round trip behavior
|
Subject: [PATCH 21/55] 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
|
||||||
@ -22,10 +22,10 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|||||||
1 file changed, 1 insertion(+), 42 deletions(-)
|
1 file changed, 1 insertion(+), 42 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
||||||
index a7ce280a..41a44e4b 100644
|
index ebcdbd22..d371ffec 100644
|
||||||
--- a/src/client/qwaylanddisplay.cpp
|
--- a/src/client/qwaylanddisplay.cpp
|
||||||
+++ b/src/client/qwaylanddisplay.cpp
|
+++ b/src/client/qwaylanddisplay.cpp
|
||||||
@@ -611,50 +611,9 @@ uint32_t QWaylandDisplay::currentTimeMillisec()
|
@@ -615,50 +615,9 @@ uint32_t QWaylandDisplay::currentTimeMillisec()
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -78,5 +78,5 @@ index a7ce280a..41a44e4b 100644
|
|||||||
|
|
||||||
bool QWaylandDisplay::supportsWindowDecoration() const
|
bool QWaylandDisplay::supportsWindowDecoration() const
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 2c71ea7f92616c799f12a342807688f6854beb4d Mon Sep 17 00:00:00 2001
|
From f584a8350503e349669744a1587634431ac0dc82 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 26/57] Client: Fix opaque region setter
|
Subject: [PATCH 22/55] 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.
|
||||||
@ -14,7 +14,7 @@ Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
|
|||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
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 579a762a..694e98a4 100644
|
index de5af1bd..69319228 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -372,7 +372,7 @@ void QWaylandWindow::setGeometry(const QRect &rect)
|
@@ -372,7 +372,7 @@ void QWaylandWindow::setGeometry(const QRect &rect)
|
||||||
@ -27,5 +27,5 @@ index 579a762a..694e98a4 100644
|
|||||||
|
|
||||||
void QWaylandWindow::resizeFromApplyConfigure(const QSize &sizeWithMargins, const QPoint &offset)
|
void QWaylandWindow::resizeFromApplyConfigure(const QSize &sizeWithMargins, const QPoint &offset)
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,35 +0,0 @@
|
|||||||
From b5ee817f9d1597d6cffb82ec2638d2259e6b1a5a Mon Sep 17 00:00:00 2001
|
|
||||||
From: Weng Xuetian <wengxt@gmail.com>
|
|
||||||
Date: Tue, 8 Feb 2022 07:11:25 -0800
|
|
||||||
Subject: [PATCH 23/57] Cursor position == 0 should still show the cursor
|
|
||||||
|
|
||||||
Otherwise the cursor would be hidden even if preedit is empty.
|
|
||||||
Amends 719a55be13bdadfa659a732755f280e276a894bd
|
|
||||||
|
|
||||||
Pick-to: 5.15 6.2 6.3
|
|
||||||
Change-Id: I320733b917779b7b51aa4a28eaea411fdb10a318
|
|
||||||
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
||||||
(cherry picked from commit 31ae194e295651d9ece03408630d2358acd4f7b4)
|
|
||||||
---
|
|
||||||
src/shared/qwaylandinputmethodeventbuilder.cpp | 4 ++--
|
|
||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/qwaylandinputmethodeventbuilder.cpp b/src/shared/qwaylandinputmethodeventbuilder.cpp
|
|
||||||
index 25be2509..458d818e 100644
|
|
||||||
--- a/src/shared/qwaylandinputmethodeventbuilder.cpp
|
|
||||||
+++ b/src/shared/qwaylandinputmethodeventbuilder.cpp
|
|
||||||
@@ -151,9 +151,9 @@ QInputMethodEvent QWaylandInputMethodEventBuilder::buildPreedit(const QString &t
|
|
||||||
{
|
|
||||||
QList<QInputMethodEvent::Attribute> attributes;
|
|
||||||
|
|
||||||
- if (m_preeditCursor <= 0) {
|
|
||||||
+ if (m_preeditCursor < 0) {
|
|
||||||
attributes.append(QInputMethodEvent::Attribute(QInputMethodEvent::Cursor, 0, 0, QVariant()));
|
|
||||||
- } else if (m_preeditCursor > 0) {
|
|
||||||
+ } else {
|
|
||||||
attributes.append(QInputMethodEvent::Attribute(QInputMethodEvent::Cursor, indexFromWayland(text, m_preeditCursor), 1, QVariant()));
|
|
||||||
}
|
|
||||||
|
|
||||||
--
|
|
||||||
2.39.0
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 20af00d0fb9da337d16b6d464ade52de39d39bf0 Mon Sep 17 00:00:00 2001
|
From a9831916ac5463682b7a27db3ffcadfe0ea07ab9 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 27/57] Use proper dependencies in compile tests
|
Subject: [PATCH 23/55] 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.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 041325c228861093d4325927e4f5e535c9410d1f Mon Sep 17 00:00:00 2001
|
From c6639e225f45564def8f6729c83887ab73495e59 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 29/57] Revert "Client: Remove mWaitingForUpdateDelivery"
|
Subject: [PATCH 24/55] 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
|
||||||
@ -18,7 +18,7 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|||||||
2 files changed, 10 insertions(+), 3 deletions(-)
|
2 files changed, 10 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
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 694e98a4..733d5ffa 100644
|
index 69319228..a87e11aa 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -658,11 +658,17 @@ void QWaylandWindow::handleFrameCallback()
|
@@ -658,11 +658,17 @@ void QWaylandWindow::handleFrameCallback()
|
||||||
@ -55,5 +55,5 @@ index cf7ce879..54ac67a9 100644
|
|||||||
QElapsedTimer mFrameCallbackElapsedTimer;
|
QElapsedTimer mFrameCallbackElapsedTimer;
|
||||||
struct ::wl_callback *mFrameCallback = nullptr;
|
struct ::wl_callback *mFrameCallback = nullptr;
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,88 +0,0 @@
|
|||||||
From b7cf29e74784f5138a0182f733fe31960debf7be Mon Sep 17 00:00:00 2001
|
|
||||||
From: Weng Xuetian <wengxt@gmail.com>
|
|
||||||
Date: Wed, 22 Dec 2021 10:42:38 -0800
|
|
||||||
Subject: [PATCH 24/57] Update the preedit styling mapping
|
|
||||||
|
|
||||||
- None mapping to no style.
|
|
||||||
- Default/Underline mapping to underline.
|
|
||||||
- Highlight/Selection mapping to background color/text color with highlight/highlight
|
|
||||||
text with underline.
|
|
||||||
- Active/Inactive mapping to bold text with underline.
|
|
||||||
- Incorrect mapping to red wave underline.
|
|
||||||
|
|
||||||
Pick-to: 5.15 6.2 6.3
|
|
||||||
Change-Id: Iab51d671b8f83aece8596f7f7610de19343fcceb
|
|
||||||
Reviewed-by: Aleix Pol Gonzalez <aleixpol@kde.org>
|
|
||||||
(cherry picked from commit f1fb5d9e568a24e213ee41e82a1142cef56f1098)
|
|
||||||
---
|
|
||||||
.../qwaylandinputmethodeventbuilder.cpp | 31 ++++++++++++-------
|
|
||||||
1 file changed, 20 insertions(+), 11 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/shared/qwaylandinputmethodeventbuilder.cpp b/src/shared/qwaylandinputmethodeventbuilder.cpp
|
|
||||||
index 458d818e..f50ccf30 100644
|
|
||||||
--- a/src/shared/qwaylandinputmethodeventbuilder.cpp
|
|
||||||
+++ b/src/shared/qwaylandinputmethodeventbuilder.cpp
|
|
||||||
@@ -39,7 +39,10 @@
|
|
||||||
|
|
||||||
#include "qwaylandinputmethodeventbuilder_p.h"
|
|
||||||
|
|
||||||
+#include <QBrush>
|
|
||||||
+#include <QGuiApplication>
|
|
||||||
#include <QInputMethod>
|
|
||||||
+#include <QPalette>
|
|
||||||
#include <QTextCharFormat>
|
|
||||||
|
|
||||||
#ifdef QT_BUILD_WAYLANDCOMPOSITOR_LIB
|
|
||||||
@@ -81,32 +84,38 @@ void QWaylandInputMethodEventBuilder::addPreeditStyling(uint32_t index, uint32_t
|
|
||||||
QTextCharFormat format;
|
|
||||||
|
|
||||||
switch (style) {
|
|
||||||
- case 0:
|
|
||||||
- case 1:
|
|
||||||
+ case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_NONE:
|
|
||||||
+ break;
|
|
||||||
+ case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_DEFAULT:
|
|
||||||
+ case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_UNDERLINE:
|
|
||||||
format.setFontUnderline(true);
|
|
||||||
format.setUnderlineStyle(QTextCharFormat::SingleUnderline);
|
|
||||||
m_preeditStyles.append(QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, index, length, format));
|
|
||||||
break;
|
|
||||||
- case 2:
|
|
||||||
- case 3:
|
|
||||||
+ case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_ACTIVE:
|
|
||||||
+ case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_INACTIVE:
|
|
||||||
format.setFontWeight(QFont::Bold);
|
|
||||||
format.setFontUnderline(true);
|
|
||||||
format.setUnderlineStyle(QTextCharFormat::SingleUnderline);
|
|
||||||
m_preeditStyles.append(QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, index, length, format));
|
|
||||||
break;
|
|
||||||
- case 4:
|
|
||||||
- format.setFontUnderline(true);
|
|
||||||
- format.setUnderlineStyle(QTextCharFormat::SingleUnderline);
|
|
||||||
- m_preeditStyles.append(QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, index, length, format));
|
|
||||||
+ case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_HIGHLIGHT:
|
|
||||||
+ case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_SELECTION:
|
|
||||||
+ {
|
|
||||||
+ format.setFontUnderline(true);
|
|
||||||
+ format.setUnderlineStyle(QTextCharFormat::SingleUnderline);
|
|
||||||
+ QPalette palette = qApp->palette();
|
|
||||||
+ format.setBackground(QBrush(palette.color(QPalette::Active, QPalette::Highlight)));
|
|
||||||
+ format.setForeground(QBrush(palette.color(QPalette::Active, QPalette::HighlightedText)));
|
|
||||||
+ m_preeditStyles.append(QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, index, length, format));
|
|
||||||
+ }
|
|
||||||
break;
|
|
||||||
- case 5:
|
|
||||||
+ case ZWP_TEXT_INPUT_V2_PREEDIT_STYLE_INCORRECT:
|
|
||||||
format.setFontUnderline(true);
|
|
||||||
format.setUnderlineStyle(QTextCharFormat::WaveUnderline);
|
|
||||||
format.setUnderlineColor(QColor(Qt::red));
|
|
||||||
m_preeditStyles.append(QInputMethodEvent::Attribute(QInputMethodEvent::TextFormat, index, length, format));
|
|
||||||
break;
|
|
||||||
-// case QtWayland::wl_text_input::preedit_style_selection:
|
|
||||||
-// case QtWayland::wl_text_input::preedit_style_none:
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
--
|
|
||||||
2.39.0
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 2c108beef333a46caf80db9decff43083aaaa099 Mon Sep 17 00:00:00 2001
|
From 2c403a8522db9aa6a9f365dba5f8ef5af205295c 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 30/57] Fix race condition on mWaitingForUpdateDelivery
|
Subject: [PATCH 25/55] 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>
|
||||||
@ -11,7 +11,7 @@ Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|||||||
2 files changed, 3 insertions(+), 6 deletions(-)
|
2 files changed, 3 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
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 733d5ffa..1952c81e 100644
|
index a87e11aa..264ca59b 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -652,24 +652,21 @@ void QWaylandWindow::handleFrameCallback()
|
@@ -652,24 +652,21 @@ void QWaylandWindow::handleFrameCallback()
|
||||||
@ -55,5 +55,5 @@ index 54ac67a9..c0a76345 100644
|
|||||||
QElapsedTimer mFrameCallbackElapsedTimer;
|
QElapsedTimer mFrameCallbackElapsedTimer;
|
||||||
struct ::wl_callback *mFrameCallback = nullptr;
|
struct ::wl_callback *mFrameCallback = nullptr;
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 78ea1a157dde5246b0b53e80d61bb7929aff9616 Mon Sep 17 00:00:00 2001
|
From 2f0528fc51a378bdd8a3ff93d996765fccf54cce 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 31/57] use poll(2) when reading from clipboard
|
Subject: [PATCH 26/55] 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.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 55fc0727534575897a866f4b89295dfc38652434 Mon Sep 17 00:00:00 2001
|
From 2197557879ae1e3459e715dbc20b21e8652cb972 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 32/57] Reduce memory leakage
|
Subject: [PATCH 27/55] 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.
|
||||||
|
|
||||||
@ -13,10 +13,10 @@ Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|||||||
1 file changed, 3 insertions(+)
|
1 file changed, 3 insertions(+)
|
||||||
|
|
||||||
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
||||||
index 41a44e4b..622ffe41 100644
|
index d371ffec..1b9ec699 100644
|
||||||
--- a/src/client/qwaylanddisplay.cpp
|
--- a/src/client/qwaylanddisplay.cpp
|
||||||
+++ b/src/client/qwaylanddisplay.cpp
|
+++ b/src/client/qwaylanddisplay.cpp
|
||||||
@@ -379,6 +379,9 @@ QWaylandDisplay::~QWaylandDisplay(void)
|
@@ -381,6 +381,9 @@ QWaylandDisplay::~QWaylandDisplay(void)
|
||||||
#endif
|
#endif
|
||||||
if (mDisplay)
|
if (mDisplay)
|
||||||
wl_display_disconnect(mDisplay);
|
wl_display_disconnect(mDisplay);
|
||||||
@ -27,5 +27,5 @@ index 41a44e4b..622ffe41 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.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 5b78d5157803414733133ca22490117a1f1a881b Mon Sep 17 00:00:00 2001
|
From d9b04ba05ed479b577579e6a34d97fb906791f69 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 33/57] Fix build with libcxx (missing array include)
|
Subject: [PATCH 28/55] 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.39.0
|
2.40.0
|
||||||
|
|
@ -1,50 +0,0 @@
|
|||||||
From a947fd6ffe37524e81936c84f264da9c50b009a8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Liang Qi <liang.qi@qt.io>
|
|
||||||
Date: Wed, 9 Mar 2022 10:47:42 +0100
|
|
||||||
Subject: [PATCH 28/57] client: update button state and etc in pointer_leave()
|
|
||||||
|
|
||||||
The cleanup work needs to be done even the surface is null, for
|
|
||||||
example, a window was closed in mouse press handler, then will not
|
|
||||||
get a mouse release.
|
|
||||||
|
|
||||||
Fixes: QTBUG-100942
|
|
||||||
Pick-to: 5.15 6.2 6.3
|
|
||||||
Change-Id: I637a6744909ddbe62bdeba6b21494e5a6ae7fa9f
|
|
||||||
Reviewed-by: Tang Haixiang <tanghaixiang@uniontech.com>
|
|
||||||
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
||||||
(cherry picked from commit 409d1080f25b653b3ff3f57c9776c5c390912206)
|
|
||||||
---
|
|
||||||
src/client/qwaylandinputdevice.cpp | 10 +++++-----
|
|
||||||
1 file changed, 5 insertions(+), 5 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp
|
|
||||||
index aaec7eb8..c3cc4eca 100644
|
|
||||||
--- a/src/client/qwaylandinputdevice.cpp
|
|
||||||
+++ b/src/client/qwaylandinputdevice.cpp
|
|
||||||
@@ -685,6 +685,11 @@ public:
|
|
||||||
|
|
||||||
void QWaylandInputDevice::Pointer::pointer_leave(uint32_t time, struct wl_surface *surface)
|
|
||||||
{
|
|
||||||
+ invalidateFocus();
|
|
||||||
+ mButtons = Qt::NoButton;
|
|
||||||
+
|
|
||||||
+ mParent->mTime = time;
|
|
||||||
+
|
|
||||||
// The event may arrive after destroying the window, indicated by
|
|
||||||
// a null surface.
|
|
||||||
if (!surface)
|
|
||||||
@@ -696,11 +701,6 @@ void QWaylandInputDevice::Pointer::pointer_leave(uint32_t time, struct wl_surfac
|
|
||||||
|
|
||||||
if (!QWaylandWindow::mouseGrab())
|
|
||||||
setFrameEvent(new LeaveEvent(window, mSurfacePos, mGlobalPos));
|
|
||||||
-
|
|
||||||
- invalidateFocus();
|
|
||||||
- mButtons = Qt::NoButton;
|
|
||||||
-
|
|
||||||
- mParent->mTime = time;
|
|
||||||
}
|
|
||||||
|
|
||||||
class MotionEvent : public QWaylandPointerEvent
|
|
||||||
--
|
|
||||||
2.39.0
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 81ddf70997f62d5f1a02d89048c5ec2d3cd27eaf Mon Sep 17 00:00:00 2001
|
From 9265dae0d87eaf2a0dfc8a67c46f6c11bd14d2ab 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 34/57] Only close popup in the the hierchary
|
Subject: [PATCH 29/55] 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}
|
||||||
@ -31,7 +31,7 @@ Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|||||||
9 files changed, 136 insertions(+), 30 deletions(-)
|
9 files changed, 136 insertions(+), 30 deletions(-)
|
||||||
|
|
||||||
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 1952c81e..6923c9a7 100644
|
index 264ca59b..9e82c174 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -239,6 +239,7 @@ bool QWaylandWindow::shouldCreateSubSurface() const
|
@@ -239,6 +239,7 @@ bool QWaylandWindow::shouldCreateSubSurface() const
|
||||||
@ -81,7 +81,7 @@ index 1952c81e..6923c9a7 100644
|
|||||||
reset();
|
reset();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1290,6 +1273,20 @@ void QWaylandWindow::setOpaqueArea(const QRegion &opaqueArea)
|
@@ -1297,6 +1280,20 @@ void QWaylandWindow::setOpaqueArea(const QRegion &opaqueArea)
|
||||||
wl_region_destroy(region);
|
wl_region_destroy(region);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -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 11706924..25c0e8c3 100644
|
index b7383e19..962001b3 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
|
||||||
@ -258,10 +258,10 @@ index 11706924..25c0e8c3 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
|
||||||
@@ -407,8 +414,9 @@ void QWaylandXdgSurface::setPopup(QWaylandWindow *parent)
|
@@ -411,8 +418,9 @@ void QWaylandXdgSurface::setPopup(QWaylandWindow *parent)
|
||||||
positioner->set_anchor(QtWayland::xdg_positioner::anchor_top_left);
|
| QtWayland::xdg_positioner::constraint_adjustment_slide_y
|
||||||
positioner->set_gravity(QtWayland::xdg_positioner::gravity_bottom_right);
|
| QtWayland::xdg_positioner::constraint_adjustment_flip_x
|
||||||
positioner->set_size(m_window->geometry().width(), m_window->geometry().height());
|
| QtWayland::xdg_positioner::constraint_adjustment_flip_y);
|
||||||
- m_popup = new Popup(this, parentXdgSurface, positioner);
|
- m_popup = new Popup(this, parentXdgSurface, positioner);
|
||||||
+ m_popup = new Popup(this, parent, positioner);
|
+ m_popup = new Popup(this, parent, positioner);
|
||||||
positioner->destroy();
|
positioner->destroy();
|
||||||
@ -397,5 +397,5 @@ index 73d1eb9c..747875b4 100644
|
|||||||
void tst_xdgshell::switchPopups()
|
void tst_xdgshell::switchPopups()
|
||||||
{
|
{
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 2b46297649a4a002a046960e571917660927ed31 Mon Sep 17 00:00:00 2001
|
From 08ce7a21017e1f9553cd0f4af1316e38709d5553 Mon Sep 17 00:00:00 2001
|
||||||
From: Ville Voutilainen <ville.voutilainen@qt.io>
|
From: Ville Voutilainen <ville.voutilainen@qt.io>
|
||||||
Date: Mon, 18 Jan 2021 12:31:31 +0200
|
Date: Mon, 18 Jan 2021 12:31:31 +0200
|
||||||
Subject: [PATCH 35/57] Build fixes for GCC 11
|
Subject: [PATCH 30/55] Build fixes for GCC 11
|
||||||
|
|
||||||
Task-number: QTBUG-89977
|
Task-number: QTBUG-89977
|
||||||
Change-Id: I7e3d0964087865e8062f539f851a61f3df017dae
|
Change-Id: I7e3d0964087865e8062f539f851a61f3df017dae
|
||||||
@ -24,5 +24,5 @@ index 5c6c83ba..fa9b7662 100644
|
|||||||
namespace MockCompositor {
|
namespace MockCompositor {
|
||||||
|
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From e043e3770da7ac7dc2e899e4f8f4d23eb8d53161 Mon Sep 17 00:00:00 2001
|
From ec0171610350305be51c3e4be7c6f086cb360fe6 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 36/57] Check pointer for null before use in ASSERT
|
Subject: [PATCH 31/55] Check pointer for null before use in ASSERT
|
||||||
|
|
||||||
Task-number: QTBUG-85195
|
Task-number: QTBUG-85195
|
||||||
Change-Id: I331e54f6e58aa9d536351a55223610c60b3cb414
|
Change-Id: I331e54f6e58aa9d536351a55223610c60b3cb414
|
||||||
@ -12,7 +12,7 @@ Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|||||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
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 6923c9a7..a4190e16 100644
|
index 9e82c174..0a5fc15b 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -536,12 +536,12 @@ void QWaylandWindow::sendRecursiveExposeEvent()
|
@@ -536,12 +536,12 @@ void QWaylandWindow::sendRecursiveExposeEvent()
|
||||||
@ -30,5 +30,5 @@ index 6923c9a7..a4190e16 100644
|
|||||||
buffer->setBusy();
|
buffer->setBusy();
|
||||||
|
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 604594c3d6734bb7c849edf3810d96eb2fbd0869 Mon Sep 17 00:00:00 2001
|
From 2d3d929c86c5aab6dd30e02ade25697d49617335 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 37/57] Use wl_surface.damage_buffer on the client side
|
Subject: [PATCH 32/55] 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.
|
||||||
@ -20,10 +20,10 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|||||||
6 files changed, 28 insertions(+), 6 deletions(-)
|
6 files changed, 28 insertions(+), 6 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
||||||
index 622ffe41..e8613ed8 100644
|
index 1b9ec699..6898a881 100644
|
||||||
--- a/src/client/qwaylanddisplay.cpp
|
--- a/src/client/qwaylanddisplay.cpp
|
||||||
+++ b/src/client/qwaylanddisplay.cpp
|
+++ b/src/client/qwaylanddisplay.cpp
|
||||||
@@ -491,7 +491,7 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
|
@@ -493,7 +493,7 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
|
||||||
if (interface == QStringLiteral("wl_output")) {
|
if (interface == QStringLiteral("wl_output")) {
|
||||||
mWaitingScreens << new QWaylandScreen(this, version, id);
|
mWaitingScreens << new QWaylandScreen(this, version, id);
|
||||||
} else if (interface == QStringLiteral("wl_compositor")) {
|
} else if (interface == QStringLiteral("wl_compositor")) {
|
||||||
@ -33,7 +33,7 @@ index 622ffe41..e8613ed8 100644
|
|||||||
} else if (interface == QStringLiteral("wl_shm")) {
|
} else if (interface == QStringLiteral("wl_shm")) {
|
||||||
mShm.reset(new QWaylandShm(this, version, id));
|
mShm.reset(new QWaylandShm(this, version, id));
|
||||||
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 a4190e16..0967c975 100644
|
index 0a5fc15b..5b7f9df9 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -563,7 +563,11 @@ void QWaylandWindow::damage(const QRect &rect)
|
@@ -563,7 +563,11 @@ void QWaylandWindow::damage(const QRect &rect)
|
||||||
@ -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.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From ef75dcf8ec8ea3996aba46ec1fcf63b34421133c Mon Sep 17 00:00:00 2001
|
From bdf04e01153aeda2c2bafa059dd21dc377eb82e1 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 38/57] Client: clear focus on touch cancel
|
Subject: [PATCH 33/55] 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.
|
||||||
@ -23,10 +23,10 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|||||||
4 files changed, 39 insertions(+)
|
4 files changed, 39 insertions(+)
|
||||||
|
|
||||||
diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp
|
diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp
|
||||||
index c3cc4eca..4b90de84 100644
|
index 5d704795..5b880984 100644
|
||||||
--- a/src/client/qwaylandinputdevice.cpp
|
--- a/src/client/qwaylandinputdevice.cpp
|
||||||
+++ b/src/client/qwaylandinputdevice.cpp
|
+++ b/src/client/qwaylandinputdevice.cpp
|
||||||
@@ -1388,6 +1388,7 @@ void QWaylandInputDevice::Touch::touch_cancel()
|
@@ -1392,6 +1392,7 @@ void QWaylandInputDevice::Touch::touch_cancel()
|
||||||
if (touchExt)
|
if (touchExt)
|
||||||
touchExt->touchCanceled();
|
touchExt->touchCanceled();
|
||||||
|
|
||||||
@ -112,5 +112,5 @@ index 296dbf47..210d8ddb 100644
|
|||||||
Seat *m_seat = nullptr;
|
Seat *m_seat = nullptr;
|
||||||
};
|
};
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 7bc9e2931cc1c81da23e245eafd42252f9cd6e9f Mon Sep 17 00:00:00 2001
|
From e920173ee9cef08d10ad8a7e21ae7a5a2c2d7530 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 39/57] Guard mResizeDirty by the correctMutex
|
Subject: [PATCH 34/55] 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
|
||||||
@ -15,7 +15,7 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|||||||
1 file changed, 4 insertions(+), 3 deletions(-)
|
1 file changed, 4 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
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 0967c975..c6477ec4 100644
|
index 5b7f9df9..117e3383 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -358,11 +358,12 @@ void QWaylandWindow::setGeometry(const QRect &rect)
|
@@ -358,11 +358,12 @@ void QWaylandWindow::setGeometry(const QRect &rect)
|
||||||
@ -35,5 +35,5 @@ index 0967c975..c6477ec4 100644
|
|||||||
}
|
}
|
||||||
QRect exposeGeometry(QPoint(), geometry().size());
|
QRect exposeGeometry(QPoint(), geometry().size());
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 4939cb0b313727474e340cf31a8037ede91517d3 Mon Sep 17 00:00:00 2001
|
From 1ff4219d8c58f8356d9d12824948013cdfde6ac5 Mon Sep 17 00:00:00 2001
|
||||||
From: Liang Qi <liang.qi@qt.io>
|
From: Liang Qi <liang.qi@qt.io>
|
||||||
Date: Fri, 11 Mar 2022 09:17:25 +0100
|
Date: Fri, 11 Mar 2022 09:17:25 +0100
|
||||||
Subject: [PATCH 40/57] client: Synthesize enter/leave event for popup in
|
Subject: [PATCH 35/55] client: Synthesize enter/leave event for popup in
|
||||||
xdg-shell
|
xdg-shell
|
||||||
MIME-Version: 1.0
|
MIME-Version: 1.0
|
||||||
Content-Type: text/plain; charset=UTF-8
|
Content-Type: text/plain; charset=UTF-8
|
||||||
@ -23,7 +23,7 @@ Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|||||||
1 file changed, 27 insertions(+)
|
1 file changed, 27 insertions(+)
|
||||||
|
|
||||||
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 25c0e8c3..fa6d5808 100644
|
index 962001b3..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
|
||||||
@@ -221,6 +221,16 @@ QWaylandXdgSurface::Popup::~Popup()
|
@@ -221,6 +221,16 @@ QWaylandXdgSurface::Popup::~Popup()
|
||||||
@ -43,7 +43,7 @@ index 25c0e8c3..fa6d5808 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -438,6 +448,23 @@ void QWaylandXdgSurface::setGrabPopup(QWaylandWindow *parent, QWaylandInputDevic
|
@@ -442,6 +452,23 @@ void QWaylandXdgSurface::setGrabPopup(QWaylandWindow *parent, QWaylandInputDevic
|
||||||
}
|
}
|
||||||
setPopup(parent);
|
setPopup(parent);
|
||||||
m_popup->grab(device, serial);
|
m_popup->grab(device, serial);
|
||||||
@ -68,5 +68,5 @@ index 25c0e8c3..fa6d5808 100644
|
|||||||
|
|
||||||
void QWaylandXdgSurface::xdg_surface_configure(uint32_t serial)
|
void QWaylandXdgSurface::xdg_surface_configure(uint32_t serial)
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From c629110d32e33cf0292fcff4b508e5f31cdc51f0 Mon Sep 17 00:00:00 2001
|
From bf6b509011c4086cc7b1a7cfdc78dd50e446b15f 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 41/57] Fix compile tests
|
Subject: [PATCH 36/55] 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.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 8f16be8260f181df34ef69cea784bd92e480e1ad Mon Sep 17 00:00:00 2001
|
From 137958eec28cb8209069f9a3a3ab778202773ff6 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 42/57] Use CRLF line delimiter for text/uri-list data
|
Subject: [PATCH 37/55] 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.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From a20047ef5387673471af835cd3fba7e23585bc75 Mon Sep 17 00:00:00 2001
|
From 0064749af275016ae3b4b09964d8d31d756d3468 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 44/57] Avoid calling requestUpdate from wrong thread
|
Subject: [PATCH 38/55] 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)
|
||||||
@ -22,7 +22,7 @@ Reviewed-by: Inho Lee <inho.lee@qt.io>
|
|||||||
1 file changed, 5 insertions(+), 1 deletion(-)
|
1 file changed, 5 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
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 cb610510..771c96cc 100644
|
index 117e3383..4ddf9fbe 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -873,7 +873,11 @@ bool QWaylandWindow::createDecoration()
|
@@ -873,7 +873,11 @@ bool QWaylandWindow::createDecoration()
|
||||||
@ -39,5 +39,5 @@ index cb610510..771c96cc 100644
|
|||||||
|
|
||||||
return mWindowDecoration;
|
return mWindowDecoration;
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 38c84c26f3b14d49ef26416049115545e7627514 Mon Sep 17 00:00:00 2001
|
From 35c03e72007630040659188b2bc7f47b1df82577 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 46/57] Call `finishDrag()` in
|
Subject: [PATCH 39/55] 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.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 1ec6327d2e376e76a35cd36cd7d0ed9ddd4294ce Mon Sep 17 00:00:00 2001
|
From 37ad4aeaa6dce748f5f6bcc5030be187e6320ec0 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 47/57] Hold surface read lock throughout
|
Subject: [PATCH 40/55] 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
|
||||||
@ -50,7 +50,7 @@ index 2be87bc0..ea3d1995 100644
|
|||||||
};
|
};
|
||||||
|
|
||||||
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
||||||
index 201b583b..64140672 100644
|
index 13dd747a..872a6237 100644
|
||||||
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
||||||
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
|
||||||
@@ -40,6 +40,7 @@
|
@@ -40,6 +40,7 @@
|
||||||
@ -61,7 +61,7 @@ index 201b583b..64140672 100644
|
|||||||
#include "qwaylandglcontext.h"
|
#include "qwaylandglcontext.h"
|
||||||
|
|
||||||
#include <QtEglSupport/private/qeglconvenience_p.h>
|
#include <QtEglSupport/private/qeglconvenience_p.h>
|
||||||
@@ -124,6 +125,7 @@ void QWaylandEglWindow::updateSurface(bool create)
|
@@ -115,6 +116,7 @@ void QWaylandEglWindow::updateSurface(bool create)
|
||||||
}
|
}
|
||||||
mOffset = QPoint();
|
mOffset = QPoint();
|
||||||
} else {
|
} else {
|
||||||
@ -69,7 +69,7 @@ index 201b583b..64140672 100644
|
|||||||
if (m_waylandEglWindow) {
|
if (m_waylandEglWindow) {
|
||||||
int current_width, current_height;
|
int current_width, current_height;
|
||||||
static bool disableResizeCheck = qgetenv("QT_WAYLAND_DISABLE_RESIZECHECK").toInt();
|
static bool disableResizeCheck = qgetenv("QT_WAYLAND_DISABLE_RESIZECHECK").toInt();
|
||||||
@@ -138,8 +140,8 @@ void QWaylandEglWindow::updateSurface(bool create)
|
@@ -129,8 +131,8 @@ void QWaylandEglWindow::updateSurface(bool create)
|
||||||
|
|
||||||
m_resize = true;
|
m_resize = true;
|
||||||
}
|
}
|
||||||
@ -81,5 +81,5 @@ index 201b583b..64140672 100644
|
|||||||
}
|
}
|
||||||
|
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From b965ae977891221ad6b02d8994352b263e14d2ee Mon Sep 17 00:00:00 2001
|
From 1012f1d4b5753ad63da3cca1226fb034e297ae6d Mon Sep 17 00:00:00 2001
|
||||||
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
||||||
Date: Tue, 8 Nov 2022 16:10:18 +0200
|
Date: Tue, 8 Nov 2022 16:10:18 +0200
|
||||||
Subject: [PATCH 48/57] Client: Ensure that wl_surface lives as long as qtquick
|
Subject: [PATCH 41/55] Client: Ensure that wl_surface lives as long as qtquick
|
||||||
render thread needs it
|
render thread needs it
|
||||||
|
|
||||||
wl_surface can be destroyed while qtquick render thread still uses it.
|
wl_surface can be destroyed while qtquick render thread still uses it.
|
||||||
@ -18,7 +18,7 @@ Change-Id: I044f40dd64e6672027a833379b57ccd9973d8305
|
|||||||
3 files changed, 20 insertions(+), 2 deletions(-)
|
3 files changed, 20 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
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 771c96cc..5b97cd55 100644
|
index 4ddf9fbe..1f2d56b5 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -76,6 +76,7 @@ QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr;
|
@@ -76,6 +76,7 @@ QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr;
|
||||||
@ -105,5 +105,5 @@ index c1f45fa6..5d6fb2bf 100644
|
|||||||
|
|
||||||
GLuint QWaylandGLContext::defaultFramebufferObject(QPlatformSurface *surface) const
|
GLuint QWaylandGLContext::defaultFramebufferObject(QPlatformSurface *surface) const
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 9146c96b84392df39d2962c3b8bcf25bbcf93ff5 Mon Sep 17 00:00:00 2001
|
From 61fccee064cd8cea698a530c76113f8487d11d68 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 49/57] Keep toplevel windows in the top left corner of the
|
Subject: [PATCH 42/55] 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,7 +39,7 @@ 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 5b97cd55..01cbbf39 100644
|
index 1f2d56b5..d3459168 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)
|
@@ -361,8 +361,13 @@ void QWaylandWindow::setGeometry_helper(const QRect &rect)
|
||||||
@ -86,5 +86,5 @@ index e18609d9..a8ee2696 100644
|
|||||||
virtual void ensureSize();
|
virtual void ensureSize();
|
||||||
WId winId() const override;
|
WId winId() const override;
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,65 +0,0 @@
|
|||||||
From 2d37a9d3700578154275661a51ccf1b895f05260 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|
||||||
Date: Tue, 9 Nov 2021 13:23:41 +0100
|
|
||||||
Subject: [PATCH 43/57] Fix missing update when toggling client-side
|
|
||||||
decorations
|
|
||||||
|
|
||||||
When CSD is toggled while a window is showing, it would change the
|
|
||||||
size and recreate the buffers, but since the widget area remained
|
|
||||||
the same size, we would not trigger a redraw. The result was that
|
|
||||||
when you got any update to the window, it would redraw the widgets
|
|
||||||
that had changed, and the rest would be transparent.
|
|
||||||
|
|
||||||
Since this is a fairly specialized case, we fix it the simple way,
|
|
||||||
by just issuing an extra update when it happens.
|
|
||||||
|
|
||||||
This also required an update to the surface test, since there is
|
|
||||||
an additional buffer commit in the beginning of the sequence now.
|
|
||||||
|
|
||||||
Pick-to: 5.15 6.2 6.3
|
|
||||||
Fixes: QTBUG-95032
|
|
||||||
Change-Id: Ic4bdb9c66a2ea76546926dd622f2d2dac5dce10c
|
|
||||||
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
|
||||||
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
|
||||||
(cherry picked from commit af7b60ade5c4be81cbc58eb18307c017d5594071)
|
|
||||||
---
|
|
||||||
src/client/qwaylandwindow.cpp | 7 +++++++
|
|
||||||
tests/auto/client/surface/tst_surface.cpp | 4 ++++
|
|
||||||
2 files changed, 11 insertions(+)
|
|
||||||
|
|
||||||
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
|
|
||||||
index c6477ec4..cb610510 100644
|
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
|
||||||
@@ -867,6 +867,13 @@ bool QWaylandWindow::createDecoration()
|
|
||||||
subsurf->set_position(pos.x() + m.left(), pos.y() + m.top());
|
|
||||||
}
|
|
||||||
sendExposeEvent(QRect(QPoint(), geometry().size()));
|
|
||||||
+
|
|
||||||
+ // This is a special case where the buffer is recreated, but since
|
|
||||||
+ // the content rect remains the same, the widgets remain the same
|
|
||||||
+ // size and are not redrawn, leaving the new buffer empty. As a simple
|
|
||||||
+ // work-around, we trigger a full extra update whenever the client-side
|
|
||||||
+ // window decorations are toggled while the window is showing.
|
|
||||||
+ window()->requestUpdate();
|
|
||||||
}
|
|
||||||
|
|
||||||
return mWindowDecoration;
|
|
||||||
diff --git a/tests/auto/client/surface/tst_surface.cpp b/tests/auto/client/surface/tst_surface.cpp
|
|
||||||
index 95e4e609..60c672ce 100644
|
|
||||||
--- a/tests/auto/client/surface/tst_surface.cpp
|
|
||||||
+++ b/tests/auto/client/surface/tst_surface.cpp
|
|
||||||
@@ -129,6 +129,10 @@ void tst_surface::waitForFrameCallbackGl()
|
|
||||||
// Make sure we follow frame callbacks for some frames
|
|
||||||
for (int i = 0; i < 5; ++i) {
|
|
||||||
xdgPingAndWaitForPong(); // Make sure things have happened on the client
|
|
||||||
+ if (!qEnvironmentVariableIntValue("QT_WAYLAND_DISABLE_WINDOWDECORATION") && i == 0) {
|
|
||||||
+ QCOMPARE(bufferSpy.count(), 1);
|
|
||||||
+ bufferSpy.removeFirst();
|
|
||||||
+ }
|
|
||||||
exec([&] {
|
|
||||||
QVERIFY(bufferSpy.empty()); // Make sure no extra buffers have arrived
|
|
||||||
QVERIFY(!xdgToplevel()->surface()->m_waitingFrameCallbacks.empty());
|
|
||||||
--
|
|
||||||
2.39.0
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 7f04725f5121bc0b05ad2289a1fef362aaa48b2f Mon Sep 17 00:00:00 2001
|
From 3813da4b6d88320b42a7d91ae100e1567113ee72 Mon Sep 17 00:00:00 2001
|
||||||
From: David Edmundson <kde@davidedmundson.co.uk>
|
From: David Edmundson <kde@davidedmundson.co.uk>
|
||||||
Date: Mon, 14 Nov 2022 10:43:25 +0000
|
Date: Mon, 14 Nov 2022 10:43:25 +0000
|
||||||
Subject: [PATCH 50/57] Revert "Client: Ensure that wl_surface lives as long as
|
Subject: [PATCH 43/55] Revert "Client: Ensure that wl_surface lives as long as
|
||||||
qtquick render thread needs it"
|
qtquick render thread needs it"
|
||||||
|
|
||||||
This reverts commit 81a7702a87f386a60a0ac8c902e203daae044d81
|
This reverts commit 81a7702a87f386a60a0ac8c902e203daae044d81
|
||||||
@ -12,7 +12,7 @@ This reverts commit 81a7702a87f386a60a0ac8c902e203daae044d81
|
|||||||
3 files changed, 2 insertions(+), 20 deletions(-)
|
3 files changed, 2 insertions(+), 20 deletions(-)
|
||||||
|
|
||||||
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 01cbbf39..d4083121 100644
|
index d3459168..f322a8d6 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -76,7 +76,6 @@ QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr;
|
@@ -76,7 +76,6 @@ QWaylandWindow *QWaylandWindow::mMouseGrab = nullptr;
|
||||||
@ -99,5 +99,5 @@ index 5d6fb2bf..c1f45fa6 100644
|
|||||||
|
|
||||||
GLuint QWaylandGLContext::defaultFramebufferObject(QPlatformSurface *surface) const
|
GLuint QWaylandGLContext::defaultFramebufferObject(QPlatformSurface *surface) const
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From ee6465749449f83f4d0028ff7988ca0c77b3506d Mon Sep 17 00:00:00 2001
|
From dd605d5fec6921a7befbfe2c40c2ae87935aa9c4 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 51/57] Client: Add F_SEAL_SHRINK seal to shm backing file
|
Subject: [PATCH 44/55] 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.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 4c56a6d18da10b42a5e01d31b3d636cfd551a767 Mon Sep 17 00:00:00 2001
|
From dea12f0bb5729de6c1a31b03b7e79710baf96b63 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 52/57] Client: Call wl_output_release() upon QWaylandScreen
|
Subject: [PATCH 45/55] 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.39.0
|
2.40.0
|
||||||
|
|
@ -1,42 +0,0 @@
|
|||||||
From 1c4a808a3e81aa498da00b88d1ada8b40465d0f8 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Liang Qi <liang.qi@qt.io>
|
|
||||||
Date: Mon, 13 Dec 2021 13:01:59 +0100
|
|
||||||
Subject: [PATCH 45/57] Client: support high-dpi mode for window icon
|
|
||||||
MIME-Version: 1.0
|
|
||||||
Content-Type: text/plain; charset=UTF-8
|
|
||||||
Content-Transfer-Encoding: 8bit
|
|
||||||
|
|
||||||
Fixes: QTBUG-90530
|
|
||||||
Pick-to: 6.3 6.2 5.15
|
|
||||||
Change-Id: Ib1f36e1cb89352dfac8a385a7b097cfc0226e813
|
|
||||||
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|
||||||
Reviewed-by: Tor Arne Vestbø <tor.arne.vestbo@qt.io>
|
|
||||||
(cherry picked from commit fc91cd6b1306c6d452cbddab3c2289ccb92218d6)
|
|
||||||
---
|
|
||||||
src/plugins/decorations/bradient/main.cpp | 9 +++------
|
|
||||||
1 file changed, 3 insertions(+), 6 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/plugins/decorations/bradient/main.cpp b/src/plugins/decorations/bradient/main.cpp
|
|
||||||
index e75fda3c..fa885143 100644
|
|
||||||
--- a/src/plugins/decorations/bradient/main.cpp
|
|
||||||
+++ b/src/plugins/decorations/bradient/main.cpp
|
|
||||||
@@ -164,13 +164,10 @@ void QWaylandBradientDecoration::paint(QPaintDevice *device)
|
|
||||||
// Window icon
|
|
||||||
QIcon icon = waylandWindow()->windowIcon();
|
|
||||||
if (!icon.isNull()) {
|
|
||||||
- QPixmap pixmap = icon.pixmap(QSize(128, 128));
|
|
||||||
- QPixmap scaled = pixmap.scaled(22, 22, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
|
|
||||||
-
|
|
||||||
QRectF iconRect(0, 0, 22, 22);
|
|
||||||
- p.drawPixmap(iconRect.adjusted(margins().left() + BUTTON_SPACING, 4,
|
|
||||||
- margins().left() + BUTTON_SPACING, 4),
|
|
||||||
- scaled, iconRect);
|
|
||||||
+ iconRect.adjust(margins().left() + BUTTON_SPACING, 4,
|
|
||||||
+ margins().left() + BUTTON_SPACING, 4),
|
|
||||||
+ icon.paint(&p, iconRect.toRect());
|
|
||||||
}
|
|
||||||
|
|
||||||
// Window title
|
|
||||||
--
|
|
||||||
2.39.0
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 66110372de281b85acff08acd68d127163c7d83e Mon Sep 17 00:00:00 2001
|
From 8071f24324ffa8c556068816e009a5887e1a6ddd 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 53/57] Client: Bump wl_output version
|
Subject: [PATCH 46/55] 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.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 776598deb927c259cd2f4d95cfd72677478ecf59 Mon Sep 17 00:00:00 2001
|
From ef5b1f40b684927f73bc04ab84c396be074cb61e 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 54/57] Fix frame sync related to unprotected multithread
|
Subject: [PATCH 47/55] 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
|
||||||
@ -21,7 +21,7 @@ Change-Id: Ie01d08d07a2f10f70606ed1935caac09cb4f0382
|
|||||||
2 files changed, 43 insertions(+), 32 deletions(-)
|
2 files changed, 43 insertions(+), 32 deletions(-)
|
||||||
|
|
||||||
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 d4083121..fb2c59dc 100644
|
index f322a8d6..6337db00 100644
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
@@ -252,13 +252,16 @@ void QWaylandWindow::reset()
|
@@ -252,13 +252,16 @@ void QWaylandWindow::reset()
|
||||||
@ -162,5 +162,5 @@ index 487a91a6..2f219d8c 100644
|
|||||||
static QWaylandWindow *mMouseGrab;
|
static QWaylandWindow *mMouseGrab;
|
||||||
|
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From d0e8f938567f841a779d7365b8b5037037045fc5 Mon Sep 17 00:00:00 2001
|
From 21e354e7b1878a243d29466b19084083df3d0db9 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 55/57] Client: Handle zwp_primary_selection_device_manager_v1
|
Subject: [PATCH 48/55] 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
|
||||||
@ -19,10 +19,10 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
|||||||
2 files changed, 9 insertions(+), 5 deletions(-)
|
2 files changed, 9 insertions(+), 5 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
diff --git a/src/client/qwaylanddisplay.cpp b/src/client/qwaylanddisplay.cpp
|
||||||
index e8613ed8..c01e238b 100644
|
index 6898a881..27f55965 100644
|
||||||
--- a/src/client/qwaylanddisplay.cpp
|
--- a/src/client/qwaylanddisplay.cpp
|
||||||
+++ b/src/client/qwaylanddisplay.cpp
|
+++ b/src/client/qwaylanddisplay.cpp
|
||||||
@@ -515,6 +515,8 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
|
@@ -519,6 +519,8 @@ void QWaylandDisplay::registry_global(uint32_t id, const QString &interface, uin
|
||||||
#if QT_CONFIG(wayland_client_primary_selection)
|
#if QT_CONFIG(wayland_client_primary_selection)
|
||||||
} else if (interface == QStringLiteral("zwp_primary_selection_device_manager_v1")) {
|
} else if (interface == QStringLiteral("zwp_primary_selection_device_manager_v1")) {
|
||||||
mPrimarySelectionManager.reset(new QWaylandPrimarySelectionDeviceManagerV1(this, id, 1));
|
mPrimarySelectionManager.reset(new QWaylandPrimarySelectionDeviceManagerV1(this, id, 1));
|
||||||
@ -31,7 +31,7 @@ index e8613ed8..c01e238b 100644
|
|||||||
#endif
|
#endif
|
||||||
} else if (interface == QStringLiteral("zwp_text_input_manager_v2") && !mClientSideInputContextRequested) {
|
} else if (interface == QStringLiteral("zwp_text_input_manager_v2") && !mClientSideInputContextRequested) {
|
||||||
mTextInputManager.reset(new QtWayland::zwp_text_input_manager_v2(registry, id, 1));
|
mTextInputManager.reset(new QtWayland::zwp_text_input_manager_v2(registry, id, 1));
|
||||||
@@ -573,6 +575,13 @@ void QWaylandDisplay::registry_global_remove(uint32_t id)
|
@@ -577,6 +579,13 @@ void QWaylandDisplay::registry_global_remove(uint32_t id)
|
||||||
inputDevice->setTextInput(nullptr);
|
inputDevice->setTextInput(nullptr);
|
||||||
mWaylandIntegration->reconfigureInputContext();
|
mWaylandIntegration->reconfigureInputContext();
|
||||||
}
|
}
|
||||||
@ -62,5 +62,5 @@ index 832f9678..ea508771 100644
|
|||||||
|
|
||||||
QWaylandPrimarySelectionDeviceV1 *QWaylandPrimarySelectionDeviceManagerV1::createDevice(QWaylandInputDevice *seat)
|
QWaylandPrimarySelectionDeviceV1 *QWaylandPrimarySelectionDeviceManagerV1::createDevice(QWaylandInputDevice *seat)
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From 2904e1b3c3004153b49c4dabfec04cc1ff5e3284 Mon Sep 17 00:00:00 2001
|
From c12b0ed6db709e2af40ab3687d880aff5c56b5c1 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 56/57] Fixes the build on CentOS
|
Subject: [PATCH 49/55] 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.39.0
|
2.40.0
|
||||||
|
|
@ -1,7 +1,7 @@
|
|||||||
From f6a1e838e371dc90272c62daeea597fe487dec3e Mon Sep 17 00:00:00 2001
|
From d04d4c7fe2e00285e7d70da42094f213e13c6ed8 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 57/57] client: Avoid protocol error with invalid min/max size
|
Subject: [PATCH 50/55] 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
|
||||||
@ -35,7 +35,7 @@ Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
|||||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
1 file changed, 2 insertions(+), 2 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 fa6d5808..67342b0c 100644
|
index ead99989..ad666129 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
|
||||||
@@ -384,10 +384,10 @@ void QWaylandXdgSurface::setSizeHints()
|
@@ -384,10 +384,10 @@ void QWaylandXdgSurface::setSizeHints()
|
||||||
@ -52,5 +52,5 @@ index fa6d5808..67342b0c 100644
|
|||||||
maxHeight = 0;
|
maxHeight = 0;
|
||||||
m_toplevel->set_max_size(maxWidth, maxHeight);
|
m_toplevel->set_max_size(maxWidth, maxHeight);
|
||||||
--
|
--
|
||||||
2.39.0
|
2.40.0
|
||||||
|
|
38
0051-Client-Fix-handling-of-Qt-BlankCursor.patch
Normal file
38
0051-Client-Fix-handling-of-Qt-BlankCursor.patch
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
From fbb9d65cf158bcf63440e9839acae9238ad4e0a7 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
||||||
|
Date: Tue, 22 Nov 2022 23:27:34 +0200
|
||||||
|
Subject: [PATCH 51/55] Client: Fix handling of Qt::BlankCursor
|
||||||
|
|
||||||
|
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
|
||||||
|
wl_pointer.set_cursor won't be called.
|
||||||
|
|
||||||
|
On the other hand, wl_pointer.set_cursor must be always called when
|
||||||
|
wl_pointer.enter is received.
|
||||||
|
|
||||||
|
Pick-to: 6.5
|
||||||
|
Change-Id: I8540e7a02df1579b3380a1a1d4cfab42c1ab3104
|
||||||
|
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
||||||
|
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
||||||
|
(cherry picked from commit e954853f0e68d78ac1a98bc3533713881496064c)
|
||||||
|
---
|
||||||
|
src/client/qwaylandinputdevice.cpp | 3 +--
|
||||||
|
1 file changed, 1 insertion(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/client/qwaylandinputdevice.cpp b/src/client/qwaylandinputdevice.cpp
|
||||||
|
index 5b880984..9a0fe49d 100644
|
||||||
|
--- a/src/client/qwaylandinputdevice.cpp
|
||||||
|
+++ b/src/client/qwaylandinputdevice.cpp
|
||||||
|
@@ -310,8 +310,7 @@ void QWaylandInputDevice::Pointer::updateCursor()
|
||||||
|
auto shape = seat()->mCursor.shape;
|
||||||
|
|
||||||
|
if (shape == Qt::BlankCursor) {
|
||||||
|
- if (mCursor.surface)
|
||||||
|
- mCursor.surface->hide();
|
||||||
|
+ getOrCreateCursorSurface()->hide();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
117
0052-client-Force-a-roundtrip-when-an-XdgOutput-is-not-re.patch
Normal file
117
0052-client-Force-a-roundtrip-when-an-XdgOutput-is-not-re.patch
Normal file
@ -0,0 +1,117 @@
|
|||||||
|
From 6897f62f603df049135347cf402a7a4037092263 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Marco Martin <notmart@gmail.com>
|
||||||
|
Date: Fri, 24 Feb 2023 17:40:48 +0100
|
||||||
|
Subject: [PATCH 52/55] client: Force a roundtrip when an XdgOutput is not
|
||||||
|
ready yet
|
||||||
|
|
||||||
|
Is possible that the server sends a surface_enter before
|
||||||
|
all the information of the XdgOutput have been processed by the client.
|
||||||
|
in this case the associated QScreen doesn't exist yet, causing a
|
||||||
|
QWindow::SetScreen(nullptr), which will fall back to
|
||||||
|
QGuiApplication::primaryScreen(), having the QWindow being assigned the
|
||||||
|
wrong screen
|
||||||
|
|
||||||
|
Change-Id: I923d5d3a35484deafa6f0572f79c16c27b1f87f0
|
||||||
|
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
||||||
|
---
|
||||||
|
src/client/qwaylandwindow.cpp | 2 ++
|
||||||
|
tests/auto/client/shared/coreprotocol.cpp | 2 ++
|
||||||
|
tests/auto/client/shared/coreprotocol.h | 3 ++
|
||||||
|
tests/auto/client/xdgoutput/tst_xdgoutput.cpp | 35 +++++++++++++++++++
|
||||||
|
4 files changed, 42 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
|
||||||
|
index 6337db00..3b700002 100644
|
||||||
|
--- a/src/client/qwaylandwindow.cpp
|
||||||
|
+++ b/src/client/qwaylandwindow.cpp
|
||||||
|
@@ -1042,6 +1042,8 @@ void QWaylandWindow::handleScreensChanged()
|
||||||
|
if (newScreen == mLastReportedScreen)
|
||||||
|
return;
|
||||||
|
|
||||||
|
+ if (!newScreen->isPlaceholder() && !newScreen->QPlatformScreen::screen())
|
||||||
|
+ mDisplay->forceRoundTrip();
|
||||||
|
QWindowSystemInterface::handleWindowScreenChanged(window(), newScreen->QPlatformScreen::screen());
|
||||||
|
mLastReportedScreen = newScreen;
|
||||||
|
if (fixedToplevelPositions && !QPlatformWindow::parent() && window()->type() != Qt::Popup
|
||||||
|
diff --git a/tests/auto/client/shared/coreprotocol.cpp b/tests/auto/client/shared/coreprotocol.cpp
|
||||||
|
index d1a2e7cb..53e12291 100644
|
||||||
|
--- a/tests/auto/client/shared/coreprotocol.cpp
|
||||||
|
+++ b/tests/auto/client/shared/coreprotocol.cpp
|
||||||
|
@@ -185,6 +185,8 @@ void Output::output_bind_resource(QtWaylandServer::wl_output::Resource *resource
|
||||||
|
|
||||||
|
if (m_version >= WL_OUTPUT_DONE_SINCE_VERSION)
|
||||||
|
wl_output::send_done(resource->handle);
|
||||||
|
+
|
||||||
|
+ Q_EMIT outputBound(resource);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Seat stuff
|
||||||
|
diff --git a/tests/auto/client/shared/coreprotocol.h b/tests/auto/client/shared/coreprotocol.h
|
||||||
|
index 210d8ddb..00c439e1 100644
|
||||||
|
--- a/tests/auto/client/shared/coreprotocol.h
|
||||||
|
+++ b/tests/auto/client/shared/coreprotocol.h
|
||||||
|
@@ -273,6 +273,9 @@ public:
|
||||||
|
OutputData m_data;
|
||||||
|
int m_version = 1; // TODO: remove on libwayland upgrade
|
||||||
|
|
||||||
|
+Q_SIGNALS:
|
||||||
|
+ void outputBound(Resource *resource);
|
||||||
|
+
|
||||||
|
protected:
|
||||||
|
void output_bind_resource(Resource *resource) override;
|
||||||
|
};
|
||||||
|
diff --git a/tests/auto/client/xdgoutput/tst_xdgoutput.cpp b/tests/auto/client/xdgoutput/tst_xdgoutput.cpp
|
||||||
|
index 80429608..68e8d77a 100644
|
||||||
|
--- a/tests/auto/client/xdgoutput/tst_xdgoutput.cpp
|
||||||
|
+++ b/tests/auto/client/xdgoutput/tst_xdgoutput.cpp
|
||||||
|
@@ -55,6 +55,7 @@ private slots:
|
||||||
|
void primaryScreen();
|
||||||
|
void overrideGeometry();
|
||||||
|
void changeGeometry();
|
||||||
|
+ void outputCreateEnterRace();
|
||||||
|
};
|
||||||
|
|
||||||
|
void tst_xdgoutput::cleanup()
|
||||||
|
@@ -134,5 +135,39 @@ void tst_xdgoutput::changeGeometry()
|
||||||
|
exec([=] { remove(output(1)); });
|
||||||
|
}
|
||||||
|
|
||||||
|
+void tst_xdgoutput::outputCreateEnterRace()
|
||||||
|
+{
|
||||||
|
+ m_config.autoConfigure = true;
|
||||||
|
+ m_config.autoEnter = false;
|
||||||
|
+ QRasterWindow window;
|
||||||
|
+ QSignalSpy screenChanged(&window, &QWindow::screenChanged);
|
||||||
|
+ window.resize(400, 320);
|
||||||
|
+ window.show();
|
||||||
|
+ QCOMPOSITOR_TRY_VERIFY(xdgSurface() && xdgSurface()->m_committedConfigureSerial);
|
||||||
|
+ exec([=] { xdgToplevel()->surface()->sendEnter(output(0));});
|
||||||
|
+
|
||||||
|
+ QTRY_COMPARE(QGuiApplication::screens().size(), 1);
|
||||||
|
+ QScreen *primaryScreen = QGuiApplication::screens().first();
|
||||||
|
+ QCOMPARE(window.screen(), primaryScreen);
|
||||||
|
+
|
||||||
|
+ auto *out = exec([=] {
|
||||||
|
+ return add<Output>();
|
||||||
|
+ });
|
||||||
|
+
|
||||||
|
+ // In Compositor Thread
|
||||||
|
+ connect(out, &Output::outputBound, this, [this](QtWaylandServer::wl_output::Resource *resource){
|
||||||
|
+ auto surface = xdgToplevel()->surface();
|
||||||
|
+ surface->sendLeave(output(0));
|
||||||
|
+ surface->QtWaylandServer::wl_surface::send_enter(surface->resource()->handle, resource->handle);
|
||||||
|
+ }, Qt::DirectConnection);
|
||||||
|
+
|
||||||
|
+ QTRY_COMPARE(QGuiApplication::screens().size(), 2);
|
||||||
|
+ QTRY_COMPARE(window.screen(), QGuiApplication::screens()[1]);
|
||||||
|
+
|
||||||
|
+ exec([=] { remove(out); });
|
||||||
|
+ m_config.autoConfigure = false;
|
||||||
|
+ m_config.autoEnter = true;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
QCOMPOSITOR_TEST_MAIN(tst_xdgoutput)
|
||||||
|
#include "tst_xdgoutput.moc"
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
138
0053-Client-Manage-QMimeData-lifecycle.patch
Normal file
138
0053-Client-Manage-QMimeData-lifecycle.patch
Normal file
@ -0,0 +1,138 @@
|
|||||||
|
From 31eab11d3b6697a76cc7802d02e525c1152a42c2 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Tang Haixiang <tanghaixiang@uniontech.com>
|
||||||
|
Date: Thu, 22 Dec 2022 15:19:53 +0800
|
||||||
|
Subject: [PATCH 53/55] Client: Manage QMimeData lifecycle
|
||||||
|
|
||||||
|
QMimeData is created by user, it is not taken care of in qtwayland,
|
||||||
|
which will cause memory leak.
|
||||||
|
|
||||||
|
It is now handled in qtwayland that when a new QMimeData is set,
|
||||||
|
the previous QMimeData is freed.
|
||||||
|
|
||||||
|
Change-Id: Ic502021fe700c7ee10454d94f0d1868901809af7
|
||||||
|
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
||||||
|
Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
|
||||||
|
(cherry picked from commit 3af40c6c42703a65656fdd3322183abb2905e44d)
|
||||||
|
---
|
||||||
|
src/client/qwaylandclipboard.cpp | 27 +++++++++++++++++++++------
|
||||||
|
src/client/qwaylandclipboard_p.h | 1 +
|
||||||
|
src/client/qwaylanddatasource.cpp | 5 -----
|
||||||
|
src/client/qwaylanddatasource_p.h | 2 --
|
||||||
|
4 files changed, 22 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/client/qwaylandclipboard.cpp b/src/client/qwaylandclipboard.cpp
|
||||||
|
index 81f48e05..14561c77 100644
|
||||||
|
--- a/src/client/qwaylandclipboard.cpp
|
||||||
|
+++ b/src/client/qwaylandclipboard.cpp
|
||||||
|
@@ -54,10 +54,15 @@ namespace QtWaylandClient {
|
||||||
|
QWaylandClipboard::QWaylandClipboard(QWaylandDisplay *display)
|
||||||
|
: mDisplay(display)
|
||||||
|
{
|
||||||
|
+ m_clientClipboard[QClipboard::Clipboard] = nullptr;
|
||||||
|
+ m_clientClipboard[QClipboard::Selection] = nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
QWaylandClipboard::~QWaylandClipboard()
|
||||||
|
{
|
||||||
|
+ if (m_clientClipboard[QClipboard::Clipboard] != m_clientClipboard[QClipboard::Selection])
|
||||||
|
+ delete m_clientClipboard[QClipboard::Clipboard];
|
||||||
|
+ delete m_clientClipboard[QClipboard::Selection];
|
||||||
|
}
|
||||||
|
|
||||||
|
QMimeData *QWaylandClipboard::mimeData(QClipboard::Mode mode)
|
||||||
|
@@ -69,8 +74,8 @@ QMimeData *QWaylandClipboard::mimeData(QClipboard::Mode mode)
|
||||||
|
switch (mode) {
|
||||||
|
case QClipboard::Clipboard:
|
||||||
|
if (auto *dataDevice = seat->dataDevice()) {
|
||||||
|
- if (auto *source = dataDevice->selectionSource())
|
||||||
|
- return source->mimeData();
|
||||||
|
+ if (dataDevice->selectionSource())
|
||||||
|
+ return m_clientClipboard[QClipboard::Clipboard];
|
||||||
|
if (auto *offer = dataDevice->selectionOffer())
|
||||||
|
return offer->mimeData();
|
||||||
|
}
|
||||||
|
@@ -78,8 +83,8 @@ QMimeData *QWaylandClipboard::mimeData(QClipboard::Mode mode)
|
||||||
|
case QClipboard::Selection:
|
||||||
|
#if QT_CONFIG(wayland_client_primary_selection)
|
||||||
|
if (auto *selectionDevice = seat->primarySelectionDevice()) {
|
||||||
|
- if (auto *source = selectionDevice->selectionSource())
|
||||||
|
- return source->mimeData();
|
||||||
|
+ if (selectionDevice->selectionSource())
|
||||||
|
+ return m_clientClipboard[QClipboard::Selection];
|
||||||
|
if (auto *offer = selectionDevice->selectionOffer())
|
||||||
|
return offer->mimeData();
|
||||||
|
}
|
||||||
|
@@ -104,17 +109,27 @@ void QWaylandClipboard::setMimeData(QMimeData *data, QClipboard::Mode mode)
|
||||||
|
if (data && data->hasFormat(plain) && !data->hasFormat(utf8))
|
||||||
|
data->setData(utf8, data->data(plain));
|
||||||
|
|
||||||
|
+ if (m_clientClipboard[mode]) {
|
||||||
|
+ if (m_clientClipboard[QClipboard::Clipboard] != m_clientClipboard[QClipboard::Selection])
|
||||||
|
+ delete m_clientClipboard[mode];
|
||||||
|
+ m_clientClipboard[mode] = nullptr;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ m_clientClipboard[mode] = data;
|
||||||
|
+
|
||||||
|
switch (mode) {
|
||||||
|
case QClipboard::Clipboard:
|
||||||
|
if (auto *dataDevice = seat->dataDevice()) {
|
||||||
|
- dataDevice->setSelectionSource(data ? new QWaylandDataSource(mDisplay->dndSelectionHandler(), data) : nullptr);
|
||||||
|
+ dataDevice->setSelectionSource(data ? new QWaylandDataSource(mDisplay->dndSelectionHandler(),
|
||||||
|
+ m_clientClipboard[QClipboard::Clipboard]) : nullptr);
|
||||||
|
emitChanged(mode);
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case QClipboard::Selection:
|
||||||
|
#if QT_CONFIG(wayland_client_primary_selection)
|
||||||
|
if (auto *selectionDevice = seat->primarySelectionDevice()) {
|
||||||
|
- selectionDevice->setSelectionSource(data ? new QWaylandPrimarySelectionSourceV1(mDisplay->primarySelectionManager(), data) : nullptr);
|
||||||
|
+ selectionDevice->setSelectionSource(data ? new QWaylandPrimarySelectionSourceV1(mDisplay->primarySelectionManager(),
|
||||||
|
+ m_clientClipboard[QClipboard::Selection]) : nullptr);
|
||||||
|
emitChanged(mode);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
diff --git a/src/client/qwaylandclipboard_p.h b/src/client/qwaylandclipboard_p.h
|
||||||
|
index ce14e124..bb52683d 100644
|
||||||
|
--- a/src/client/qwaylandclipboard_p.h
|
||||||
|
+++ b/src/client/qwaylandclipboard_p.h
|
||||||
|
@@ -80,6 +80,7 @@ public:
|
||||||
|
private:
|
||||||
|
QWaylandDisplay *mDisplay = nullptr;
|
||||||
|
QMimeData m_emptyData;
|
||||||
|
+ QMimeData *m_clientClipboard[2];
|
||||||
|
};
|
||||||
|
|
||||||
|
}
|
||||||
|
diff --git a/src/client/qwaylanddatasource.cpp b/src/client/qwaylanddatasource.cpp
|
||||||
|
index 5599cbd4..e085152c 100644
|
||||||
|
--- a/src/client/qwaylanddatasource.cpp
|
||||||
|
+++ b/src/client/qwaylanddatasource.cpp
|
||||||
|
@@ -71,11 +71,6 @@ QWaylandDataSource::~QWaylandDataSource()
|
||||||
|
destroy();
|
||||||
|
}
|
||||||
|
|
||||||
|
-QMimeData * QWaylandDataSource::mimeData() const
|
||||||
|
-{
|
||||||
|
- return m_mime_data;
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
void QWaylandDataSource::data_source_cancelled()
|
||||||
|
{
|
||||||
|
Q_EMIT cancelled();
|
||||||
|
diff --git a/src/client/qwaylanddatasource_p.h b/src/client/qwaylanddatasource_p.h
|
||||||
|
index 96f07bc3..14d1542d 100644
|
||||||
|
--- a/src/client/qwaylanddatasource_p.h
|
||||||
|
+++ b/src/client/qwaylanddatasource_p.h
|
||||||
|
@@ -74,8 +74,6 @@ public:
|
||||||
|
QWaylandDataSource(QWaylandDataDeviceManager *dataDeviceManager, QMimeData *mimeData);
|
||||||
|
~QWaylandDataSource() override;
|
||||||
|
|
||||||
|
- QMimeData *mimeData() const;
|
||||||
|
-
|
||||||
|
Q_SIGNALS:
|
||||||
|
void cancelled();
|
||||||
|
void finished();
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
@ -0,0 +1,34 @@
|
|||||||
|
From 18c2bcec31f68aafd66d7ec503ec6511ca804d07 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Aleix Pol <aleixpol@kde.org>
|
||||||
|
Date: Mon, 6 Mar 2023 01:11:45 +0100
|
||||||
|
Subject: [PATCH 54/55] client: Do not cast placeholder screens to
|
||||||
|
QWaylandScreen
|
||||||
|
|
||||||
|
It's wrong to C-cast an object to a class that isn't theirs. Check if it
|
||||||
|
is a placeholder first.
|
||||||
|
|
||||||
|
Pick-to: 5.15 6.2 6.5
|
||||||
|
Change-Id: I45d3c423422ae6638a033fb0f4cfefc7cd4460f0
|
||||||
|
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
|
||||||
|
Reviewed-by: David Edmundson <davidedmundson@kde.org>
|
||||||
|
(cherry picked from commit a53f022393a1276dbf8eccbae04cb0bd6cea0160)
|
||||||
|
---
|
||||||
|
src/client/qwaylandnativeinterface.cpp | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/client/qwaylandnativeinterface.cpp b/src/client/qwaylandnativeinterface.cpp
|
||||||
|
index bf54a1a0..9763c312 100644
|
||||||
|
--- a/src/client/qwaylandnativeinterface.cpp
|
||||||
|
+++ b/src/client/qwaylandnativeinterface.cpp
|
||||||
|
@@ -139,7 +139,7 @@ void *QWaylandNativeInterface::nativeResourceForScreen(const QByteArray &resourc
|
||||||
|
{
|
||||||
|
QByteArray lowerCaseResource = resourceString.toLower();
|
||||||
|
|
||||||
|
- if (lowerCaseResource == "output")
|
||||||
|
+ if (lowerCaseResource == "output" && !screen->handle()->isPlaceholder())
|
||||||
|
return ((QWaylandScreen *) screen->handle())->output();
|
||||||
|
|
||||||
|
return nullptr;
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
41
0055-Client-Remove-flip-popup-constraints.patch
Normal file
41
0055-Client-Remove-flip-popup-constraints.patch
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
From c4c3fc69250c01cb35aaae5ea1ea2bcc8236dff0 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
|
||||||
|
Date: Thu, 12 Jan 2023 14:49:25 +0200
|
||||||
|
Subject: [PATCH 55/55] Client: Remove flip popup constraints
|
||||||
|
|
||||||
|
xdg_positioner doesn't have good anchor rect and other needed
|
||||||
|
information so the compositor can properly flip popups. In some windows
|
||||||
|
I see that some popups are flipped in such a way that the popups look
|
||||||
|
"detached" from the parent window.
|
||||||
|
|
||||||
|
With the information that QtWayland provides so far only slide
|
||||||
|
constraint adjustments can produce somewhat expected results. Although
|
||||||
|
there will be still some issues near screen edges.
|
||||||
|
|
||||||
|
Pick-to: 6.5 6.4 6.2 5.15
|
||||||
|
Task-number: QTBUG-87303
|
||||||
|
Change-Id: I4021f497b78e62651fe606c4be21a387a92edd6c
|
||||||
|
Reviewed-by: Liang Qi <liang.qi@qt.io>
|
||||||
|
(cherry picked from commit d7a5dab0182cba19d7f59e542672aa3d1b2e859e)
|
||||||
|
---
|
||||||
|
src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp | 4 +---
|
||||||
|
1 file changed, 1 insertion(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
|
||||||
|
index ad666129..822b385c 100644
|
||||||
|
--- a/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
|
||||||
|
+++ b/src/plugins/shellintegration/xdg-shell/qwaylandxdgshell.cpp
|
||||||
|
@@ -425,9 +425,7 @@ void QWaylandXdgSurface::setPopup(QWaylandWindow *parent)
|
||||||
|
positioner->set_gravity(QtWayland::xdg_positioner::gravity_bottom_right);
|
||||||
|
positioner->set_size(m_window->geometry().width(), m_window->geometry().height());
|
||||||
|
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);
|
||||||
|
+ | QtWayland::xdg_positioner::constraint_adjustment_slide_y);
|
||||||
|
m_popup = new Popup(this, parent, positioner);
|
||||||
|
positioner->destroy();
|
||||||
|
|
||||||
|
--
|
||||||
|
2.40.0
|
||||||
|
|
@ -2,8 +2,8 @@
|
|||||||
|
|
||||||
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.8
|
Version: 5.15.9
|
||||||
Release: 6%{?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
|
||||||
Url: http://www.qt.io
|
Url: http://www.qt.io
|
||||||
@ -27,50 +27,48 @@ Patch10: 0010-Client-Don-t-always-recreate-frame-callbacks.patch
|
|||||||
Patch11: 0011-Client-Always-destroy-frame-callback-in-the-actual-c.patch
|
Patch11: 0011-Client-Always-destroy-frame-callback-in-the-actual-c.patch
|
||||||
Patch12: 0012-Wayland-client-use-wl_keyboard-to-determine-active-s.patch
|
Patch12: 0012-Wayland-client-use-wl_keyboard-to-determine-active-s.patch
|
||||||
Patch13: 0013-Client-do-not-empty-clipboard-when-a-new-popup-windo.patch
|
Patch13: 0013-Client-do-not-empty-clipboard-when-a-new-popup-windo.patch
|
||||||
Patch14: 0014-Set-preedit-cursor-when-cursor-equals-to-0.patch
|
Patch14: 0014-Client-Implement-DataDeviceV3.patch
|
||||||
Patch15: 0015-Client-Implement-DataDeviceV3.patch
|
Patch15: 0015-Client-Delay-deletion-of-QDrag-object-until-after-we.patch
|
||||||
Patch16: 0016-Client-Delay-deletion-of-QDrag-object-until-after-we.patch
|
Patch16: 0016-Client-Avoid-processing-of-events-when-showing-windo.patch
|
||||||
Patch17: 0017-Client-Avoid-processing-of-events-when-showing-windo.patch
|
Patch17: 0017-Handle-registry_global-out-of-constructor.patch
|
||||||
Patch18: 0018-Handle-registry_global-out-of-constructor.patch
|
Patch18: 0018-Connect-flushRequest-after-forceRoundTrip.patch
|
||||||
Patch19: 0019-Connect-flushRequest-after-forceRoundTrip.patch
|
Patch19: 0019-Move-the-wayland-socket-polling-to-a-separate-event-.patch
|
||||||
Patch20: 0020-Move-the-wayland-socket-polling-to-a-separate-event-.patch
|
Patch20: 0020-Client-Remove-mWaitingForUpdateDelivery.patch
|
||||||
Patch21: 0021-Fix-crash-if-no-input-method-module-could-be-loaded.patch
|
Patch21: 0021-client-Simplify-round-trip-behavior.patch
|
||||||
Patch22: 0022-Client-Remove-mWaitingForUpdateDelivery.patch
|
Patch22: 0022-Client-Fix-opaque-region-setter.patch
|
||||||
Patch23: 0023-Cursor-position-0-should-still-show-the-cursor.patch
|
Patch23: 0023-Use-proper-dependencies-in-compile-tests.patch
|
||||||
Patch24: 0024-Update-the-preedit-styling-mapping.patch
|
Patch24: 0024-Revert-Client-Remove-mWaitingForUpdateDelivery.patch
|
||||||
Patch25: 0025-client-Simplify-round-trip-behavior.patch
|
Patch25: 0025-Fix-race-condition-on-mWaitingForUpdateDelivery.patch
|
||||||
Patch26: 0026-Client-Fix-opaque-region-setter.patch
|
Patch26: 0026-use-poll-2-when-reading-from-clipboard.patch
|
||||||
Patch27: 0027-Use-proper-dependencies-in-compile-tests.patch
|
Patch27: 0027-Reduce-memory-leakage.patch
|
||||||
Patch28: 0028-client-update-button-state-and-etc-in-pointer_leave.patch
|
Patch28: 0028-Fix-build-with-libcxx-missing-array-include.patch
|
||||||
Patch29: 0029-Revert-Client-Remove-mWaitingForUpdateDelivery.patch
|
Patch29: 0029-Only-close-popup-in-the-the-hierchary.patch
|
||||||
Patch30: 0030-Fix-race-condition-on-mWaitingForUpdateDelivery.patch
|
Patch30: 0030-Build-fixes-for-GCC-11.patch
|
||||||
Patch31: 0031-use-poll-2-when-reading-from-clipboard.patch
|
Patch31: 0031-Check-pointer-for-null-before-use-in-ASSERT.patch
|
||||||
Patch32: 0032-Reduce-memory-leakage.patch
|
Patch32: 0032-Use-wl_surface.damage_buffer-on-the-client-side.patch
|
||||||
Patch33: 0033-Fix-build-with-libcxx-missing-array-include.patch
|
Patch33: 0033-Client-clear-focus-on-touch-cancel.patch
|
||||||
Patch34: 0034-Only-close-popup-in-the-the-hierchary.patch
|
Patch34: 0034-Guard-mResizeDirty-by-the-correctMutex.patch
|
||||||
Patch35: 0035-Build-fixes-for-GCC-11.patch
|
Patch35: 0035-client-Synthesize-enter-leave-event-for-popup-in-xdg.patch
|
||||||
Patch36: 0036-Check-pointer-for-null-before-use-in-ASSERT.patch
|
Patch36: 0036-Fix-compile-tests.patch
|
||||||
Patch37: 0037-Use-wl_surface.damage_buffer-on-the-client-side.patch
|
Patch37: 0037-Use-CRLF-line-delimiter-for-text-uri-list-data.patch
|
||||||
Patch38: 0038-Client-clear-focus-on-touch-cancel.patch
|
Patch38: 0038-Avoid-calling-requestUpdate-from-wrong-thread.patch
|
||||||
Patch39: 0039-Guard-mResizeDirty-by-the-correctMutex.patch
|
Patch39: 0039-Call-finishDrag-in-QWaylandDataDevice-dragSourceCanc.patch
|
||||||
Patch40: 0040-client-Synthesize-enter-leave-event-for-popup-in-xdg.patch
|
Patch40: 0040-Hold-surface-read-lock-throughout-QWaylandEglWindow-.patch
|
||||||
Patch41: 0041-Fix-compile-tests.patch
|
Patch41: 0041-Client-Ensure-that-wl_surface-lives-as-long-as-qtqui.patch
|
||||||
Patch42: 0042-Use-CRLF-line-delimiter-for-text-uri-list-data.patch
|
Patch42: 0042-Keep-toplevel-windows-in-the-top-left-corner-of-the-.patch
|
||||||
Patch43: 0043-Fix-missing-update-when-toggling-client-side-decorat.patch
|
Patch43: 0043-Revert-Client-Ensure-that-wl_surface-lives-as-long-a.patch
|
||||||
Patch44: 0044-Avoid-calling-requestUpdate-from-wrong-thread.patch
|
Patch44: 0044-Client-Add-F_SEAL_SHRINK-seal-to-shm-backing-file.patch
|
||||||
Patch45: 0045-Client-support-high-dpi-mode-for-window-icon.patch
|
Patch45: 0045-Client-Call-wl_output_release-upon-QWaylandScreen-de.patch
|
||||||
Patch46: 0046-Call-finishDrag-in-QWaylandDataDevice-dragSourceCanc.patch
|
Patch46: 0046-Client-Bump-wl_output-version.patch
|
||||||
Patch47: 0047-Hold-surface-read-lock-throughout-QWaylandEglWindow-.patch
|
Patch47: 0047-Fix-frame-sync-related-to-unprotected-multithread-ac.patch
|
||||||
Patch48: 0048-Client-Ensure-that-wl_surface-lives-as-long-as-qtqui.patch
|
Patch48: 0048-Client-Handle-zwp_primary_selection_device_manager_v.patch
|
||||||
Patch49: 0049-Keep-toplevel-windows-in-the-top-left-corner-of-the-.patch
|
Patch49: 0049-Fixes-the-build-on-CentOS.patch
|
||||||
Patch50: 0050-Revert-Client-Ensure-that-wl_surface-lives-as-long-a.patch
|
Patch50: 0050-client-Avoid-protocol-error-with-invalid-min-max-siz.patch
|
||||||
Patch51: 0051-Client-Add-F_SEAL_SHRINK-seal-to-shm-backing-file.patch
|
Patch51: 0051-Client-Fix-handling-of-Qt-BlankCursor.patch
|
||||||
Patch52: 0052-Client-Call-wl_output_release-upon-QWaylandScreen-de.patch
|
Patch52: 0052-client-Force-a-roundtrip-when-an-XdgOutput-is-not-re.patch
|
||||||
Patch53: 0053-Client-Bump-wl_output-version.patch
|
Patch53: 0053-Client-Manage-QMimeData-lifecycle.patch
|
||||||
Patch54: 0054-Fix-frame-sync-related-to-unprotected-multithread-ac.patch
|
Patch54: 0054-client-Do-not-cast-placeholder-screens-to-QWaylandSc.patch
|
||||||
Patch55: 0055-Client-Handle-zwp_primary_selection_device_manager_v.patch
|
Patch55: 0055-Client-Remove-flip-popup-constraints.patch
|
||||||
Patch56: 0056-Fixes-the-build-on-CentOS.patch
|
|
||||||
Patch57: 0057-client-Avoid-protocol-error-with-invalid-min-max-siz.patch
|
|
||||||
|
|
||||||
Patch80: 0080-Client-set-constraint-adjustments-for-popups-in-xdg.patch
|
Patch80: 0080-Client-set-constraint-adjustments-for-popups-in-xdg.patch
|
||||||
|
|
||||||
@ -183,6 +181,9 @@ popd
|
|||||||
|
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue Apr 11 2023 Jan Grulich <jgrulich@redhat.com>
|
||||||
|
- 5.15.9
|
||||||
|
|
||||||
* Wed Mar 29 2023 Than Ngo <than@redhat.com> - 5.15.8-6
|
* Wed Mar 29 2023 Than Ngo <than@redhat.com> - 5.15.8-6
|
||||||
- Related bz#2179854, rebuild against new qt5-qtbase
|
- Related bz#2179854, rebuild against new qt5-qtbase
|
||||||
|
|
||||||
|
2
sources
2
sources
@ -1 +1 @@
|
|||||||
SHA512 (qtwayland-everywhere-opensource-src-5.15.8.tar.xz) = 6c6e9dc20f98d71abd7dba54ff278bf4535e70f86bfc4e6dd46c1af7c87777f045a6aba02bba3eb786f7cf383da5fb72b03e1e6ec636c8be0cde0e4e5b7b5b2d
|
SHA512 (qtwayland-everywhere-opensource-src-5.15.9.tar.xz) = d108d63ceeb3b1a8905ad7f53a7271fca6a3506679d352b7290cdf8c00e1c180b6c561ee013a674002b89e23f58cfb7b909dfc5a8fdec6cece7e0a782be77978
|
||||||
|
Loading…
Reference in New Issue
Block a user