This commit is contained in:
Jan Grulich 2022-10-31 11:20:04 +01:00
parent e0d21b65e9
commit 46376bb00d
54 changed files with 306 additions and 167 deletions

1
.gitignore vendored
View File

@ -14,3 +14,4 @@
/qtwayland-everywhere-opensource-src-5.15.4.tar.xz
/qtwayland-everywhere-opensource-src-5.15.5.tar.xz
/qtwayland-everywhere-opensource-src-5.15.6.tar.xz
/qtwayland-everywhere-opensource-src-5.15.7.tar.xz

View File

@ -1,7 +1,7 @@
From dc898504f36bc7edd7113cfa74ed08dedd5453cf Mon Sep 17 00:00:00 2001
From e958ef218835a5ad41908a0017962f8e4a5cacfc Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Wed, 5 May 2021 20:49:26 +0300
Subject: [PATCH 01/47] Client: Announce an output after receiving more
Subject: [PATCH 01/49] Client: Announce an output after receiving more
complete state
Output initialization is not atomic, meaning that the compositor may

View File

@ -1,7 +1,7 @@
From fd88c188f4b2a0c2dd1aed496926606dc770c220 Mon Sep 17 00:00:00 2001
From 80aef0246c3b7cb658f9caca2e1ea3c4b57c0a74 Mon Sep 17 00:00:00 2001
From: Jaeyoon Jung <jaeyoon.jung@lge.com>
Date: Mon, 15 Feb 2021 08:31:06 +0900
Subject: [PATCH 02/47] Fix issue with repeated window size changes
Subject: [PATCH 02/49] Fix issue with repeated window size changes
Check if the new window size is different from the size requested
previously before calling wl_egl_window_resize. It addresses the issue

View File

@ -1,7 +1,7 @@
From 72eee300b30717ed4484fddfcfab66293a845194 Mon Sep 17 00:00:00 2001
From e0840ff3d47a3a825a523e4b393ea9f709928d63 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org>
Date: Tue, 9 Feb 2021 16:09:21 +0000
Subject: [PATCH 03/47] Client: Connect drags being accepted to updating the
Subject: [PATCH 03/49] Client: Connect drags being accepted to updating the
source drag icon
Currently in a multi-process drag and drop when the other client accepts
@ -23,7 +23,7 @@ Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
1 file changed, 1 insertion(+)
diff --git a/src/client/qwaylanddatadevice.cpp b/src/client/qwaylanddatadevice.cpp
index 19944a34..54a69c3c 100644
index 7e2e3308..bbd2d568 100644
--- a/src/client/qwaylanddatadevice.cpp
+++ b/src/client/qwaylanddatadevice.cpp
@@ -124,6 +124,7 @@ bool QWaylandDataDevice::startDrag(QMimeData *mimeData, QWaylandWindow *icon)

View File

@ -1,7 +1,7 @@
From b30dce259b51da2894a2b50c20d52aaee3f4845e Mon Sep 17 00:00:00 2001
From 440c43d28b09e257d2244cbdc8fece5ea45405b6 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org>
Date: Fri, 14 May 2021 13:23:24 +0100
Subject: [PATCH 04/47] Client: Disconnect registry listener on destruction
Subject: [PATCH 04/49] Client: Disconnect registry listener on destruction
If a display outlives a QWaylandClientExtension and a new global is
announced we end up delivering an event to a now deleted extension which

View File

@ -1,7 +1,7 @@
From 5d3ff18b89300186fd51baa63693d74c803c1575 Mon Sep 17 00:00:00 2001
From d26cc08f187d2e5e535372943fff22eea6b4bfc6 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org>
Date: Mon, 3 May 2021 23:01:53 +0100
Subject: [PATCH 05/47] Client: Set XdgShell size hints before the first commit
Subject: [PATCH 05/49] Client: Set XdgShell size hints before the first commit
propagateSizeHints is only called in QWindow we have platform window and
minimumSizeHint is then sent. We also need to send existing hints when

View File

@ -1,7 +1,7 @@
From 29f95b057ec9edec9ae793ac9eecbe66de024fe6 Mon Sep 17 00:00:00 2001
From 926a7fa0be1732384116b907999032536931f389 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org>
Date: Mon, 14 Jun 2021 12:45:37 +0100
Subject: [PATCH 06/47] Fix build
Subject: [PATCH 06/49] Fix build
1b5e43a593e917610e6245f7a272ac081c508ba4 relied on a patch that we can't
backport.

View File

@ -1,7 +1,7 @@
From d50de48c698799c7522f460c9f5ad17af20409f0 Mon Sep 17 00:00:00 2001
From 43255b532e8fb93edab0b851341c12218cba03d4 Mon Sep 17 00:00:00 2001
From: Zhang Liang <zhanglianga@uniontech.com>
Date: Mon, 1 Feb 2021 19:29:43 +0800
Subject: [PATCH 07/47] Fix: remove listener
Subject: [PATCH 07/49] Fix: remove listener
Add the operation for removing the listener form listener list

View File

@ -1,7 +1,7 @@
From 5553201fa28bc4d868ed2ffb70951063b642abfd Mon Sep 17 00:00:00 2001
From d58b2a2ff81e3ee0c6888ce7eb7268603d4e72d4 Mon Sep 17 00:00:00 2001
From: David Redondo <qt@david-redondo.de>
Date: Wed, 26 May 2021 14:49:40 +0200
Subject: [PATCH 08/47] Hook up queryKeyboardModifers
Subject: [PATCH 08/49] Hook up queryKeyboardModifers
Can be useful when upon enter a modifiers event is received but no key
event so no QKeyEvent is generated.

View File

@ -1,7 +1,7 @@
From 9904bc47054d44f414ace894bf36093ee7a1b37a Mon Sep 17 00:00:00 2001
From c32409b20dc9cf90a43f5319cc771c4a41ba0637 Mon Sep 17 00:00:00 2001
From: Jan Blackquill <uhhadd@gmail.com>
Date: Tue, 24 Aug 2021 14:36:34 -0400
Subject: [PATCH 09/47] Correctly detect if image format is supported by
Subject: [PATCH 09/49] Correctly detect if image format is supported by
QImageWriter
The code queries potential image formats by stripping a mimetype of its

View File

@ -1,7 +1,7 @@
From aa701858908ced79f5ebe4f30907ebbe7566e238 Mon Sep 17 00:00:00 2001
From 493f0931e08d4d0722614b8b88dda598a6dbb8ea Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <gbsneto@gnome.org>
Date: Thu, 27 May 2021 19:55:04 -0300
Subject: [PATCH 11/47] Client: Don't always recreate frame callbacks
Subject: [PATCH 10/49] Client: Don't always recreate frame callbacks
The main QWaylandWindow method that is executed when handling updates is
QWaylandWindow::handleUpdate(). This method always, unconditionally queues

View File

@ -1,31 +0,0 @@
From 56c6dd31c9e3bead6b2435b1fb0a02023eab5bcc Mon Sep 17 00:00:00 2001
From: Paul Olav Tvete <paul.tvete@qt.io>
Date: Tue, 14 Sep 2021 11:56:23 +0200
Subject: [PATCH 10/47] Wayland client: Fix crash when windows are shown/hidden
during drag
Fixes: QTBUG-87624
Pick-to: 6.2 5.15
Change-Id: I1b9443df091878abcd4fbe9c55927cb819aebd59
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit c64c5d3849b40617e1de0295f8690f354cab2b3a)
---
src/client/qwaylanddatadevice.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/client/qwaylanddatadevice.cpp b/src/client/qwaylanddatadevice.cpp
index 54a69c3c..bbd2d568 100644
--- a/src/client/qwaylanddatadevice.cpp
+++ b/src/client/qwaylanddatadevice.cpp
@@ -169,7 +169,7 @@ void QWaylandDataDevice::data_device_drop()
void QWaylandDataDevice::data_device_enter(uint32_t serial, wl_surface *surface, wl_fixed_t x, wl_fixed_t y, wl_data_offer *id)
{
- auto *dragWaylandWindow = QWaylandWindow::fromWlSurface(surface);
+ auto *dragWaylandWindow = surface ? QWaylandWindow::fromWlSurface(surface) : nullptr;
if (!dragWaylandWindow)
return; // Ignore foreign surfaces
--
2.37.3

View File

@ -1,7 +1,7 @@
From b9f26b7d68a39785f5bf4dbe165dcc6bec8ac144 Mon Sep 17 00:00:00 2001
From b1b6e096ac2b5f00c71b247c034138298655f7fc Mon Sep 17 00:00:00 2001
From: Georges Basile Stavracas Neto <gbsneto@gnome.org>
Date: Thu, 27 May 2021 20:02:53 -0300
Subject: [PATCH 12/47] Client: Always destroy frame callback in the actual
Subject: [PATCH 11/49] Client: Always destroy frame callback in the actual
callback
It's good hygiene to destroy all frame callbacks. Destroy the

View File

@ -1,7 +1,7 @@
From 82f6e0525aa3bc14617d62847d4b3a153fe67a44 Mon Sep 17 00:00:00 2001
From 4d79df48948fc109e7db8f55c16807b6f6440e13 Mon Sep 17 00:00:00 2001
From: Rodney Dawes <dobey.pwns@gmail.com>
Date: Fri, 15 Oct 2021 12:55:33 -0400
Subject: [PATCH 13/47] Fix the logic for decoding modifiers map in Wayland
Subject: [PATCH 12/49] Fix the logic for decoding modifiers map in Wayland
text input protocol
Correctly check for the flags in the modifiers map when we get it from

View File

@ -1,7 +1,7 @@
From 63d06271d40e53ab27457d891e7811e5ba481973 Mon Sep 17 00:00:00 2001
From e532733f7f4406d6b656c12cd107736dacd570e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?M=C3=A9ven=20Car?= <meven.car@enioka.com>
Date: Wed, 18 Aug 2021 18:28:20 +0200
Subject: [PATCH 14/47] Wayland client: use wl_keyboard to determine active
Subject: [PATCH 13/49] Wayland client: use wl_keyboard to determine active
state
Commit f497a5bb87270174b8e0106b7eca1992d44ff15d made QWaylandDisplay

View File

@ -1,7 +1,7 @@
From 1505033c73fc89c4bd5e6c0add0b1025391024f8 Mon Sep 17 00:00:00 2001
From cdee89135492a9fb0f042bef55960ea1b3f9edeb Mon Sep 17 00:00:00 2001
From: Jan Grulich <jgrulich@redhat.com>
Date: Fri, 16 Jul 2021 13:00:03 +0200
Subject: [PATCH 15/47] Client: do not empty clipboard when a new popup/window
Subject: [PATCH 14/49] Client: do not empty clipboard when a new popup/window
is opened
If we open a new popup or a window within the same app we have to avoid

View File

@ -1,7 +1,7 @@
From 8f6e1d59b5c0ae9999ec42d0499bb444d02860fd Mon Sep 17 00:00:00 2001
From 61690b979ed6585707904f3e490a8d417f209890 Mon Sep 17 00:00:00 2001
From: Weng Xuetian <wengxt@gmail.com>
Date: Sat, 18 Dec 2021 23:42:49 -0800
Subject: [PATCH 16/47] Set preedit cursor when cursor equals to 0
Subject: [PATCH 15/49] Set preedit cursor when cursor equals to 0
Pick-to: 6.3 6.2 5.15
Change-Id: I832fbb22d973b36ac4ab51570fc53bc2e4c3ed58

View File

@ -1,7 +1,7 @@
From cfa528e05d93bec8630f23eac2f0aa17b02e3d62 Mon Sep 17 00:00:00 2001
From 239325e37c79acb9c2d32561d0dba70bece1a064 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org>
Date: Tue, 16 Feb 2021 09:51:47 +0000
Subject: [PATCH 17/47] Client: Implement DataDeviceV3
Subject: [PATCH 16/49] Client: Implement DataDeviceV3
DataDeviceV2 fixes a leak of DataDevice resources.

View File

@ -1,7 +1,7 @@
From e8204cd4701ed59cc3fb3d025ec17ff8001d38b5 Mon Sep 17 00:00:00 2001
From 74024e1b628db9988537aaa5311b012de663f03e Mon Sep 17 00:00:00 2001
From: Arjen Hiemstra <ahiemstra@heimr.nl>
Date: Thu, 18 Nov 2021 13:05:30 +0100
Subject: [PATCH 18/47] Client: Delay deletion of QDrag object until after
Subject: [PATCH 17/49] Client: Delay deletion of QDrag object until after
we're done with it
In certain cases, most notably when performing drag and drop operations

View File

@ -1,7 +1,7 @@
From d9324566b1c47a9feada7c10105a5cefb49f8683 Mon Sep 17 00:00:00 2001
From 7ca997dab774193653ae40a39c2d5a78a5389880 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org>
Date: Sun, 14 Nov 2021 13:54:19 +0000
Subject: [PATCH 19/47] Client: Avoid processing of events when showing windows
Subject: [PATCH 18/49] Client: Avoid processing of events when showing windows
The only time we want to dispatch events from the wayland socket is when
the application is waiting for external events. Doing so at any other

View File

@ -1,7 +1,7 @@
From 746a5262b53fddb3cebd4accbe82844f9ee6a2f9 Mon Sep 17 00:00:00 2001
From f550dc5061cd58099788ec2602212c342aa5d3de Mon Sep 17 00:00:00 2001
From: Elvis Lee <kwangwoong.lee@lge.com>
Date: Thu, 18 Feb 2021 15:45:49 +0900
Subject: [PATCH 20/47] Handle registry_global out of constructor
Subject: [PATCH 19/49] Handle registry_global out of constructor
Factory functions in QWaylandDisplay::registry_global() can be overridden.
Later, other classes instantiated in the registry_global can support

View File

@ -1,7 +1,7 @@
From cd253857f2ca0f1f90e001df5bb40b4967a734da Mon Sep 17 00:00:00 2001
From d837b730d4658849dcf9db7a9bad4fc0c68c7853 Mon Sep 17 00:00:00 2001
From: Elvis Lee <kwangwoong.lee@lge.com>
Date: Wed, 17 Mar 2021 16:31:10 +0900
Subject: [PATCH 21/47] Connect flushRequest after forceRoundTrip
Subject: [PATCH 20/49] Connect flushRequest after forceRoundTrip
If flushRequest is connected with aboutToBlock, the flushRequest
may consumes all events so that processEvents might be blocked in forceRoundTrip.

View File

@ -1,7 +1,7 @@
From cb887d58bdf4f685f0a1f226bfbc3b2806d8ca17 Mon Sep 17 00:00:00 2001
From 142e7c9be808a35832e0f48e0557b6bcf6aaba23 Mon Sep 17 00:00:00 2001
From: Adrien Faveraux <af@brain-networks.fr>
Date: Fri, 26 Nov 2021 09:18:58 +0100
Subject: [PATCH 22/47] Move the wayland socket polling to a separate event
Subject: [PATCH 21/49] Move the wayland socket polling to a separate event
thread
New event threads is introduced which calls poll() on the wayland fd,

View File

@ -1,7 +1,7 @@
From 1480fda6ab4a23debd2d1a75d0e8f6c851255441 Mon Sep 17 00:00:00 2001
From eda84d33e7905c4ef44a2c9f6fdd333eb7ed2327 Mon Sep 17 00:00:00 2001
From: Inho Lee <inho.lee@qt.io>
Date: Mon, 1 Nov 2021 14:23:58 +0100
Subject: [PATCH 23/47] Do not create decorations when the shellSurface is not
Subject: [PATCH 22/49] Do not create decorations when the shellSurface is not
ready
A cases reported that client windows try to make decorations

View File

@ -1,7 +1,7 @@
From fccba4c2f4ba10cfa823c5a17d739618e52ce309 Mon Sep 17 00:00:00 2001
From b763109be9e43a74081bd2751a0bf5ddf946bd33 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 24/47] Fix crash if no input method module could be loaded
Subject: [PATCH 23/49] Fix crash if no input method module could be loaded
Pick-to: 6.2 6.3 5.15
Change-Id: I8f346def616606a6c5540856bd08a84ee7ed5ca2

View File

@ -1,7 +1,7 @@
From d45289232b887bad6157bb53caaa8244ee4df9e1 Mon Sep 17 00:00:00 2001
From 78693107da90f5d9062ef2fa83175a6ca2b2c90e Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Tue, 1 Feb 2022 13:05:36 +0200
Subject: [PATCH 25/47] Client: Remove mWaitingForUpdateDelivery
Subject: [PATCH 24/49] Client: Remove mWaitingForUpdateDelivery
Currently, mWaitingForUpdateDelivery is shared between the main thread
(doHandleFrameCallback()) and the frame callback event thread

View File

@ -1,7 +1,7 @@
From 52f134c18cf8f6bdf91716cb917ef7e5e7314fd1 Mon Sep 17 00:00:00 2001
From 54ceb678e383b0da9619be0a75982f3afb244ac0 Mon Sep 17 00:00:00 2001
From: Weng Xuetian <wengxt@gmail.com>
Date: Tue, 8 Feb 2022 07:11:25 -0800
Subject: [PATCH 26/47] Cursor position == 0 should still show the cursor
Subject: [PATCH 25/49] Cursor position == 0 should still show the cursor
Otherwise the cursor would be hidden even if preedit is empty.
Amends 719a55be13bdadfa659a732755f280e276a894bd

View File

@ -1,7 +1,7 @@
From c617e5a182bbffb58b36604d530be11d2b0e9e2c Mon Sep 17 00:00:00 2001
From f5a41e6908368e4743c2b1227c64fb58edee4d42 Mon Sep 17 00:00:00 2001
From: Weng Xuetian <wengxt@gmail.com>
Date: Wed, 22 Dec 2021 10:42:38 -0800
Subject: [PATCH 27/47] Update the preedit styling mapping
Subject: [PATCH 26/49] Update the preedit styling mapping
- None mapping to no style.
- Default/Underline mapping to underline.

View File

@ -1,7 +1,7 @@
From 854a2a206357fec346e76c54e97ae462eeb5daa4 Mon Sep 17 00:00:00 2001
From fd149e386037252ef5aef2b82ba0f61df4aa9316 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org>
Date: Wed, 9 Feb 2022 17:20:48 +0000
Subject: [PATCH 28/47] client: Simplify round trip behavior
Subject: [PATCH 27/49] client: Simplify round trip behavior
The custom event queue was removed in
302d4ffb8549214eb4028dc3e47ec4ee4e12ffbd (2015) so the comment about not

View File

@ -1,7 +1,7 @@
From 2b2905a859304e2c184a7b2a76b9e4b13f6d210c Mon Sep 17 00:00:00 2001
From 4a041c982573e822b111d704f53969d170f2552c Mon Sep 17 00:00:00 2001
From: Vlad Zahorodnii <vlad.zahorodnii@kde.org>
Date: Sat, 19 Feb 2022 17:01:04 +0200
Subject: [PATCH 29/47] Client: Fix opaque region setter
Subject: [PATCH 28/49] Client: Fix opaque region setter
The rect is in the global coordinate system, while the opaque region
must be in the surface local coordinate system.

View File

@ -1,7 +1,7 @@
From d2bd1cda1ac12e19d57985aee412fc2bd67b49b8 Mon Sep 17 00:00:00 2001
From db5eb7da124460480a99f7dc17d0e44586636479 Mon Sep 17 00:00:00 2001
From: Fabian Vogt <fabian@ritter-vogt.de>
Date: Fri, 4 Feb 2022 11:07:36 +0100
Subject: [PATCH 30/47] Use proper dependencies in compile tests
Subject: [PATCH 29/49] Use proper dependencies in compile tests
Use the dependencies as found by the "libraries" section instead of relying
on them being available in the default location (e.g. "-ldrm").

View File

@ -1,7 +1,7 @@
From 2222b675fc1ce754f0e5f9fd212ba0b274dc2599 Mon Sep 17 00:00:00 2001
From b05feed6fcd47c81a522262236ee1afa1862904c 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 31/47] client: update button state and etc in pointer_leave()
Subject: [PATCH 30/49] 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

View File

@ -1,7 +1,7 @@
From 29a5701dd1ac110af8a2b20a92fd1e09f8299861 Mon Sep 17 00:00:00 2001
From d9f268ae17e07588da7c7a2fc10a5448369ef0b9 Mon Sep 17 00:00:00 2001
From: Paul Olav Tvete <paul.tvete@qt.io>
Date: Tue, 15 Mar 2022 15:59:15 +0100
Subject: [PATCH 32/47] Revert "Client: Remove mWaitingForUpdateDelivery"
Subject: [PATCH 31/49] Revert "Client: Remove mWaitingForUpdateDelivery"
The reverted commit introduces a severe performance regression
when a client window is resized while a QtQuick renderthread

View File

@ -1,7 +1,7 @@
From f1a4832a2db60af2110ffe4cdf9589cc06da4f59 Mon Sep 17 00:00:00 2001
From 72bc145365397e4b033d479516e9a4a3c30ab276 Mon Sep 17 00:00:00 2001
From: Paul Olav Tvete <paul.tvete@qt.io>
Date: Tue, 15 Mar 2022 16:53:04 +0100
Subject: [PATCH 33/47] Fix race condition on mWaitingForUpdateDelivery
Subject: [PATCH 32/49] Fix race condition on mWaitingForUpdateDelivery
Change-Id: I0e91bda73722468b9339fc434fe04420b5e7d3da
Reviewed-by: David Edmundson <davidedmundson@kde.org>

View File

@ -1,7 +1,7 @@
From 2d44b41a314ac18e000fff23c8a21f8de76a8a80 Mon Sep 17 00:00:00 2001
From 47bd24aa3ba58f2abb520ff5bded38c1a3de101e Mon Sep 17 00:00:00 2001
From: Kenneth Topp <ken@bllue.org>
Date: Mon, 4 Apr 2022 09:36:21 -0400
Subject: [PATCH 34/47] use poll(2) when reading from clipboard
Subject: [PATCH 33/49] use poll(2) when reading from clipboard
change clipboard read away from select(2) call which can fail when
an application has large number of open files

View File

@ -1,7 +1,7 @@
From fdc18ecd3674fa026e090a68ae869d2696bf6d8a Mon Sep 17 00:00:00 2001
From b1a11fe937fc91aa9784df31253637dbad8ae97b Mon Sep 17 00:00:00 2001
From: Ulf Hermann <ulf.hermann@qt.io>
Date: Tue, 22 Feb 2022 12:31:08 +0100
Subject: [PATCH 35/47] Reduce memory leakage
Subject: [PATCH 34/49] Reduce memory leakage
We need to clean up the event queue when we're done.

View File

@ -1,7 +1,7 @@
From cb205112b141e48c5a2251f5424be3a99baafad5 Mon Sep 17 00:00:00 2001
From e30016b35b77e37baced365a072a23b3d04964f7 Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Sat, 18 Jun 2022 17:11:11 +0100
Subject: [PATCH 36/47] Fix build with libcxx (missing array include)
Subject: [PATCH 35/49] Fix build with libcxx (missing array include)
Bug: https://bugs.gentoo.org/833488

View File

@ -1,7 +1,7 @@
From 6df6ff51718eda0f06c2df6edb22e8a4fc9c353e Mon Sep 17 00:00:00 2001
From 8ac781b098343fdc941b3fc7509319fbfefe95c8 Mon Sep 17 00:00:00 2001
From: Weng Xuetian <wengxt@gmail.com>
Date: Wed, 20 Jul 2022 15:57:40 -0700
Subject: [PATCH 37/47] Only close popup in the the hierchary
Subject: [PATCH 36/49] Only close popup in the the hierchary
Imagine following event sequences:
1. a tooltip is shown. activePopups = {tooltip}

View File

@ -1,7 +1,7 @@
From e501ed58dbe44492a085587d1746a5848ac962f7 Mon Sep 17 00:00:00 2001
From 4453f174d794b43b1df3f2090b5287ae3b61a047 Mon Sep 17 00:00:00 2001
From: Ville Voutilainen <ville.voutilainen@qt.io>
Date: Mon, 18 Jan 2021 12:31:31 +0200
Subject: [PATCH 38/47] Build fixes for GCC 11
Subject: [PATCH 37/49] Build fixes for GCC 11
Task-number: QTBUG-89977
Change-Id: I7e3d0964087865e8062f539f851a61f3df017dae

View File

@ -1,7 +1,7 @@
From bada05134c79c9aa35ce898ec294e11a2aff949a Mon Sep 17 00:00:00 2001
From 790e949fdc17c3bceb8e4994c23e1222fb9c7410 Mon Sep 17 00:00:00 2001
From: Roman Genkhel <roman.genhel@lge.com>
Date: Thu, 12 Nov 2020 12:21:51 +0300
Subject: [PATCH 39/47] Check pointer for null before use in ASSERT
Subject: [PATCH 38/49] Check pointer for null before use in ASSERT
Task-number: QTBUG-85195
Change-Id: I331e54f6e58aa9d536351a55223610c60b3cb414

View File

@ -1,7 +1,7 @@
From 5972e1c4eccb1baf89d6cf779925eb35a49a8d2d Mon Sep 17 00:00:00 2001
From 71f4a2efc4c6e031663aa6facc5aad3d6ecd65c0 Mon Sep 17 00:00:00 2001
From: Paul Olav Tvete <paul.tvete@qt.io>
Date: Mon, 6 Jul 2020 14:37:35 +0200
Subject: [PATCH 40/47] Use wl_surface.damage_buffer on the client side
Subject: [PATCH 39/49] Use wl_surface.damage_buffer on the client side
Prefer the newer, recommended damage_buffer when the compositor
supports it.

View File

@ -1,7 +1,7 @@
From c618467da4c06528537026e2b78f92265bce446f Mon Sep 17 00:00:00 2001
From 4d900fb4e68f8b3c0956948d613a072622fbc803 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org>
Date: Fri, 5 Aug 2022 15:00:31 +0100
Subject: [PATCH 41/47] Client: clear focus on touch cancel
Subject: [PATCH 40/49] Client: clear focus on touch cancel
When we get a touch_cancel event all touches should be treated as
lifted.

View File

@ -1,7 +1,7 @@
From 566f577ee2b0fa1f13bcc1a3cda64b75dbc1b3df Mon Sep 17 00:00:00 2001
From 3b6ac168f8827a3d06207bfaa63be8be8e2a1cd5 Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org>
Date: Thu, 3 Feb 2022 19:42:33 +0000
Subject: [PATCH 42/47] Guard mResizeDirty by the correctMutex
Subject: [PATCH 41/49] Guard mResizeDirty by the correctMutex
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

View File

@ -1,7 +1,7 @@
From 489a0a1fc1db61f46e2b232ae4523723a05304b7 Mon Sep 17 00:00:00 2001
From ab4b808176cdbb2c90e20f5bfaa36b9be1da6de1 Mon Sep 17 00:00:00 2001
From: Liang Qi <liang.qi@qt.io>
Date: Fri, 11 Mar 2022 09:17:25 +0100
Subject: [PATCH 43/47] client: Synthesize enter/leave event for popup in
Subject: [PATCH 42/49] client: Synthesize enter/leave event for popup in
xdg-shell
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8

View File

@ -1,7 +1,7 @@
From f77065f0cc9da073535e7347eac1ee150dde1908 Mon Sep 17 00:00:00 2001
From ef8d198c36989a25093e99c2e952ef7c9e7bdac2 Mon Sep 17 00:00:00 2001
From: Albert Astals Cid <aacid@kde.org>
Date: Fri, 9 Sep 2022 15:37:49 +0200
Subject: [PATCH 44/47] Fix compile tests
Subject: [PATCH 43/49] Fix compile tests
Broken in c618467da4c06528537026e2b78f92265bce446f
---

View File

@ -1,7 +1,7 @@
From 215eec416e669ba7a1b7473eedf78d75d5c8d684 Mon Sep 17 00:00:00 2001
From c80442ead26f4532d139c750206e0bed04621b88 Mon Sep 17 00:00:00 2001
From: Alexandros Frantzis <alexandros.frantzis@collabora.com>
Date: Wed, 11 May 2022 17:12:52 +0300
Subject: [PATCH 45/47] Use CRLF line delimiter for text/uri-list data
Subject: [PATCH 44/49] Use CRLF line delimiter for text/uri-list data
According to RFC 2483, which describes text/uri-list, the line delimiter
must be CRLF (instead of the currently used LF). Some applications

View File

@ -1,7 +1,7 @@
From 4ab7939c280b80c89411561b33d1bbda4666d580 Mon Sep 17 00:00:00 2001
From 60c7d26098ec6b0da695e97e6f7cc5cd23fa2c56 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 46/47] Fix missing update when toggling client-side
Subject: [PATCH 45/49] Fix missing update when toggling client-side
decorations
When CSD is toggled while a window is showing, it would change the

View File

@ -1,7 +1,7 @@
From a3718734e38a53b36de2025f64e06d186516c1dd Mon Sep 17 00:00:00 2001
From e0e030d90e0c1df94ddd9bee3e366c320d323ba1 Mon Sep 17 00:00:00 2001
From: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Date: Mon, 8 Aug 2022 12:14:01 +0200
Subject: [PATCH 47/47] Avoid calling requestUpdate from wrong thread
Subject: [PATCH 46/49] Avoid calling requestUpdate from wrong thread
In certain circumstances, we can get to createDecoration()
from the render thread (from QWaylandGLContext::makeCurrent)

View File

@ -0,0 +1,42 @@
From 78ccf62673b20111da0579e2a8e0631894099348 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 47/49] 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.37.3

View File

@ -0,0 +1,38 @@
From 06222ef959875308e44fa01d89698bb2f3912056 Mon Sep 17 00:00:00 2001
From: Fushan Wen <qydwhotmail@gmail.com>
Date: Sun, 18 Sep 2022 18:17:18 +0800
Subject: [PATCH 48/49] Call `finishDrag()` in
`QWaylandDataDevice::dragSourceCancelled()`
Drags can either get finished or cancelled. If a drag is finished
successfully we call finish on the QBasicDrag instance, which quits
the nested event loop. This patch adds the connection for cancelled
drags.
See also: https://bugs.kde.org/show_bug.cgi?id=446111
Pick-to: 6.4 6.2 5.15
Change-Id: Ib93040648da88a433d647c87adcb7a7fabcaef6c
Reviewed-by: Liang Qi <liang.qi@qt.io>
(cherry picked from commit c92282b865efcf8c571bb52b5f96d8ad260a1cda)
BUG: 446111
---
src/client/qwaylanddatadevice.cpp | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/client/qwaylanddatadevice.cpp b/src/client/qwaylanddatadevice.cpp
index fbb5aa91..e3e60ed5 100644
--- a/src/client/qwaylanddatadevice.cpp
+++ b/src/client/qwaylanddatadevice.cpp
@@ -296,6 +296,7 @@ void QWaylandDataDevice::selectionSourceCancelled()
#if QT_CONFIG(draganddrop)
void QWaylandDataDevice::dragSourceCancelled()
{
+ static_cast<QWaylandDrag *>(QGuiApplicationPrivate::platformIntegration()->drag())->finishDrag();
m_dragSource.reset();
}
--
2.37.3

View File

@ -0,0 +1,85 @@
From 9c607c771acdb3d820be7f112db99213a6c6d7eb Mon Sep 17 00:00:00 2001
From: David Edmundson <davidedmundson@kde.org>
Date: Mon, 12 Sep 2022 13:28:08 +0100
Subject: [PATCH 49/49] Hold surface read lock throughout
QWaylandEglWindow::updateSurface
QWaylandEGLWindow::updateSurface is called from both the main and render
threads. It is called on the render thread when making the surface
current, which could be after the window is hidden if there are cleanup
jobs to be done.
Whilst the getter wlSurface() holds a read lock, it's not enough as we
need the instance alive between the two calls and throughout the mesa
code.
This potentially fixes a crash seen in mesa where we crash creating a
surface for an invalid wl_surface object.
Change-Id: I497356e752ffaf3549d174f10c4c268234b02cbd
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
(cherry picked from commit 50f1ccc66c68f9f4c0b08400747942109c16b2be)
---
src/client/qwaylandwindow_p.h | 6 ++++--
.../client/wayland-egl/qwaylandeglwindow.cpp | 6 ++++--
2 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h
index 2be87bc0..ea3d1995 100644
--- a/src/client/qwaylandwindow_p.h
+++ b/src/client/qwaylandwindow_p.h
@@ -220,7 +220,11 @@ signals:
protected:
QWaylandDisplay *mDisplay = nullptr;
+
+ // mSurface can be written by the main thread. Other threads should claim a read lock for access
+ mutable QReadWriteLock mSurfaceLock;
QScopedPointer<QWaylandSurface> mSurface;
+
QWaylandShellSurface *mShellSurface = nullptr;
QWaylandSubSurface *mSubSurfaceWindow = nullptr;
QVector<QWaylandSubSurface *> mChildren;
@@ -294,8 +298,6 @@ private:
static QWaylandWindow *mMouseGrab;
- mutable QReadWriteLock mSurfaceLock;
-
friend class QWaylandSubSurface;
};
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
index 201b583b..64140672 100644
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglwindow.cpp
@@ -40,6 +40,7 @@
#include "qwaylandeglwindow.h"
#include <QtWaylandClient/private/qwaylandscreen_p.h>
+#include <QtWaylandClient/private/qwaylandsurface_p.h>
#include "qwaylandglcontext.h"
#include <QtEglSupport/private/qeglconvenience_p.h>
@@ -124,6 +125,7 @@ void QWaylandEglWindow::updateSurface(bool create)
}
mOffset = QPoint();
} else {
+ QReadLocker locker(&mSurfaceLock);
if (m_waylandEglWindow) {
int current_width, current_height;
static bool disableResizeCheck = qgetenv("QT_WAYLAND_DISABLE_RESIZECHECK").toInt();
@@ -138,8 +140,8 @@ void QWaylandEglWindow::updateSurface(bool create)
m_resize = true;
}
- } else if (create && wlSurface()) {
- m_waylandEglWindow = wl_egl_window_create(wlSurface(), sizeWithMargins.width(), sizeWithMargins.height());
+ } else if (create && mSurface) {
+ m_waylandEglWindow = wl_egl_window_create(mSurface->object(), sizeWithMargins.width(), sizeWithMargins.height());
m_requestedSize = sizeWithMargins;
}
--
2.37.3

View File

@ -2,7 +2,7 @@
Summary: Qt5 - Wayland platform support and QtCompositor module
Name: qt5-%{qt_module}
Version: 5.15.6
Version: 5.15.7
Release: 1%{?dist}
License: LGPLv3
@ -13,7 +13,7 @@ Source0: https://download.qt.io/official_releases/qt/%{majmin}/%{version}/submod
## Upstream patches
## repo: https://invent.kde.org/qt/qt/qtwayland
## branch: kde/5.15
## git format-patch v5.15.6-lts-lgpl
## git format-patch v5.15.7-lts-lgpl
Patch1: 0001-Client-Announce-an-output-after-receiving-more-compl.patch
Patch2: 0002-Fix-issue-with-repeated-window-size-changes.patch
Patch3: 0003-Client-Connect-drags-being-accepted-to-updating-the-.patch
@ -23,46 +23,48 @@ Patch6: 0006-Fix-build.patch
Patch7: 0007-Fix-remove-listener.patch
Patch8: 0008-Hook-up-queryKeyboardModifers.patch
Patch9: 0009-Correctly-detect-if-image-format-is-supported-by-QIm.patch
Patch10: 0010-Wayland-client-Fix-crash-when-windows-are-shown-hidd.patch
Patch11: 0011-Client-Don-t-always-recreate-frame-callbacks.patch
Patch12: 0012-Client-Always-destroy-frame-callback-in-the-actual-c.patch
Patch13: 0013-Fix-the-logic-for-decoding-modifiers-map-in-Wayland-.patch
Patch14: 0014-Wayland-client-use-wl_keyboard-to-determine-active-s.patch
Patch15: 0015-Client-do-not-empty-clipboard-when-a-new-popup-windo.patch
Patch16: 0016-Set-preedit-cursor-when-cursor-equals-to-0.patch
Patch17: 0017-Client-Implement-DataDeviceV3.patch
Patch18: 0018-Client-Delay-deletion-of-QDrag-object-until-after-we.patch
Patch19: 0019-Client-Avoid-processing-of-events-when-showing-windo.patch
Patch20: 0020-Handle-registry_global-out-of-constructor.patch
Patch21: 0021-Connect-flushRequest-after-forceRoundTrip.patch
Patch22: 0022-Move-the-wayland-socket-polling-to-a-separate-event-.patch
Patch23: 0023-Do-not-create-decorations-when-the-shellSurface-is-n.patch
Patch24: 0024-Fix-crash-if-no-input-method-module-could-be-loaded.patch
Patch25: 0025-Client-Remove-mWaitingForUpdateDelivery.patch
Patch26: 0026-Cursor-position-0-should-still-show-the-cursor.patch
Patch27: 0027-Update-the-preedit-styling-mapping.patch
Patch28: 0028-client-Simplify-round-trip-behavior.patch
Patch29: 0029-Client-Fix-opaque-region-setter.patch
Patch30: 0030-Use-proper-dependencies-in-compile-tests.patch
Patch31: 0031-client-update-button-state-and-etc-in-pointer_leave.patch
Patch32: 0032-Revert-Client-Remove-mWaitingForUpdateDelivery.patch
Patch33: 0033-Fix-race-condition-on-mWaitingForUpdateDelivery.patch
Patch34: 0034-use-poll-2-when-reading-from-clipboard.patch
Patch35: 0035-Reduce-memory-leakage.patch
Patch36: 0036-Fix-build-with-libcxx-missing-array-include.patch
Patch37: 0037-Only-close-popup-in-the-the-hierchary.patch
Patch38: 0038-Build-fixes-for-GCC-11.patch
Patch39: 0039-Check-pointer-for-null-before-use-in-ASSERT.patch
Patch40: 0040-Use-wl_surface.damage_buffer-on-the-client-side.patch
Patch41: 0041-Client-clear-focus-on-touch-cancel.patch
Patch42: 0042-Guard-mResizeDirty-by-the-correctMutex.patch
Patch43: 0043-client-Synthesize-enter-leave-event-for-popup-in-xdg.patch
Patch44: 0044-Fix-compile-tests.patch
Patch45: 0045-Use-CRLF-line-delimiter-for-text-uri-list-data.patch
Patch46: 0046-Fix-missing-update-when-toggling-client-side-decorat.patch
Patch47: 0047-Avoid-calling-requestUpdate-from-wrong-thread.patch
Patch10: 0010-Client-Don-t-always-recreate-frame-callbacks.patch
Patch11: 0011-Client-Always-destroy-frame-callback-in-the-actual-c.patch
Patch12: 0012-Fix-the-logic-for-decoding-modifiers-map-in-Wayland-.patch
Patch13: 0013-Wayland-client-use-wl_keyboard-to-determine-active-s.patch
Patch14: 0014-Client-do-not-empty-clipboard-when-a-new-popup-windo.patch
Patch15: 0015-Set-preedit-cursor-when-cursor-equals-to-0.patch
Patch16: 0016-Client-Implement-DataDeviceV3.patch
Patch17: 0017-Client-Delay-deletion-of-QDrag-object-until-after-we.patch
Patch18: 0018-Client-Avoid-processing-of-events-when-showing-windo.patch
Patch19: 0019-Handle-registry_global-out-of-constructor.patch
Patch20: 0020-Connect-flushRequest-after-forceRoundTrip.patch
Patch21: 0021-Move-the-wayland-socket-polling-to-a-separate-event-.patch
Patch22: 0022-Do-not-create-decorations-when-the-shellSurface-is-n.patch
Patch23: 0023-Fix-crash-if-no-input-method-module-could-be-loaded.patch
Patch24: 0024-Client-Remove-mWaitingForUpdateDelivery.patch
Patch25: 0025-Cursor-position-0-should-still-show-the-cursor.patch
Patch26: 0026-Update-the-preedit-styling-mapping.patch
Patch27: 0027-client-Simplify-round-trip-behavior.patch
Patch28: 0028-Client-Fix-opaque-region-setter.patch
Patch29: 0029-Use-proper-dependencies-in-compile-tests.patch
Patch30: 0030-client-update-button-state-and-etc-in-pointer_leave.patch
Patch31: 0031-Revert-Client-Remove-mWaitingForUpdateDelivery.patch
Patch32: 0032-Fix-race-condition-on-mWaitingForUpdateDelivery.patch
Patch33: 0033-use-poll-2-when-reading-from-clipboard.patch
Patch34: 0034-Reduce-memory-leakage.patch
Patch35: 0035-Fix-build-with-libcxx-missing-array-include.patch
Patch36: 0036-Only-close-popup-in-the-the-hierchary.patch
Patch37: 0037-Build-fixes-for-GCC-11.patch
Patch38: 0038-Check-pointer-for-null-before-use-in-ASSERT.patch
Patch39: 0039-Use-wl_surface.damage_buffer-on-the-client-side.patch
Patch40: 0040-Client-clear-focus-on-touch-cancel.patch
Patch41: 0041-Guard-mResizeDirty-by-the-correctMutex.patch
Patch42: 0042-client-Synthesize-enter-leave-event-for-popup-in-xdg.patch
Patch43: 0043-Fix-compile-tests.patch
Patch44: 0044-Use-CRLF-line-delimiter-for-text-uri-list-data.patch
Patch45: 0045-Fix-missing-update-when-toggling-client-side-decorat.patch
Patch46: 0046-Avoid-calling-requestUpdate-from-wrong-thread.patch
Patch47: 0047-Client-support-high-dpi-mode-for-window-icon.patch
Patch48: 0048-Call-finishDrag-in-QWaylandDataDevice-dragSourceCanc.patch
Patch49: 0049-Hold-surface-read-lock-throughout-QWaylandEglWindow-.patch
Patch50: 0050-Client-set-constraint-adjustments-for-popups-in-xdg.patch
Patch80: 0080-Client-set-constraint-adjustments-for-popups-in-xdg.patch
# Menu location is offset depending on xdg_output.logical_layout in sway
# https://bugreports.qt.io/browse/QTBUG-85297
@ -178,6 +180,9 @@ popd
%changelog
* Mon Oct 31 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.7-1
- 5.15.7
* Tue Sep 20 2022 Jan Grulich <jgrulich@redhat.com> - 5.15.6-1
- 5.15.6

View File

@ -1,2 +1 @@
SHA512 (qtwayland-everywhere-opensource-src-5.15.5.tar.xz) = 828dceb7bc54ce610a73f110f0aca332a90cf95df4a3bc971bd21c4e878366cb8d2248e609b73ce4d381579a143843c87a62f23dcc95767e522874e53a1b0327
SHA512 (qtwayland-everywhere-opensource-src-5.15.6.tar.xz) = 824cb4dfd2bd9d858f38430332a359cf6cd2b256c91b0bafcbe49c8847cb41a7ced79ef8abd5469170837525639df26fcbcdfb49ffefc4fc4cde0830d9afe98c
SHA512 (qtwayland-everywhere-opensource-src-5.15.7.tar.xz) = a004a82ec2b4f132d597ae3c82b4079671ecdfeed09c455073e552197da2b9f921c85bef2b40be76e87e61d5ec1e7ab39ed232be26b27d9aed6e938c659965a3