Accepting request 956939 from KDE:Qt:5.15
- Update to version 5.15.2+kde54: * Use proper dependencies in compile tests * Client: Fix opaque region setter * client: Simplify round trip behavior (boo#1196302) * Update the preedit styling mapping * Cursor position == 0 should still show the cursor * Client: Remove mWaitingForUpdateDelivery * Fix crash if no input method module could be loaded * Use wl_surface.damage_buffer on the client side * Do not create decorations when the shellSurface is not ready * Check pointer for null before use in ASSERT - Drop patches, now upstream: * 0001-Client-Remove-mWaitingForUpdateDelivery.patch * 0001-Use-proper-dependencies-in-compile-tests.patch OBS-URL: https://build.opensuse.org/request/show/956939 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/libqt5-qtwayland?expand=0&rev=44
This commit is contained in:
commit
11d72ad6a3
@ -1,77 +0,0 @@
|
|||||||
From 78b517296568e4cd960ef4e13001d1200ad33e01 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 1/3] Client: Remove mWaitingForUpdateDelivery
|
|
||||||
|
|
||||||
Currently, mWaitingForUpdateDelivery is shared between the main thread
|
|
||||||
(doHandleFrameCallback()) and the frame callback event thread
|
|
||||||
(handleFrameCallback()), however the access to it is not synchronized
|
|
||||||
between neither both threads. On the other hand, QWaylandWindow
|
|
||||||
already ensures not to create a frame callback if there's already one
|
|
||||||
pending.
|
|
||||||
|
|
||||||
This change removes mWaitingForUpdateDelivery flag because it should be
|
|
||||||
already covered by mWaitingForFrameCallback and to remove unsynchronized
|
|
||||||
shared state between threads.
|
|
||||||
|
|
||||||
Change-Id: I0e5a25d18d1e66c4d7683e7e972330c4d7cbbf38
|
|
||||||
---
|
|
||||||
src/client/qwaylandwindow.cpp | 29 ++++++++++++-----------------
|
|
||||||
src/client/qwaylandwindow_p.h | 1 -
|
|
||||||
2 files changed, 12 insertions(+), 18 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/client/qwaylandwindow.cpp b/src/client/qwaylandwindow.cpp
|
|
||||||
index acfe390e..30ae5345 100644
|
|
||||||
--- a/src/client/qwaylandwindow.cpp
|
|
||||||
+++ b/src/client/qwaylandwindow.cpp
|
|
||||||
@@ -638,23 +638,18 @@ void QWaylandWindow::handleFrameCallback()
|
|
||||||
mFrameCallbackElapsedTimer.invalidate();
|
|
||||||
|
|
||||||
// The rest can wait until we can run it on the correct thread
|
|
||||||
- if (!mWaitingForUpdateDelivery) {
|
|
||||||
- auto doHandleExpose = [this]() {
|
|
||||||
- bool wasExposed = isExposed();
|
|
||||||
- mFrameCallbackTimedOut = false;
|
|
||||||
- if (!wasExposed && isExposed()) // Did setting mFrameCallbackTimedOut make the window exposed?
|
|
||||||
- sendExposeEvent(QRect(QPoint(), geometry().size()));
|
|
||||||
- if (wasExposed && hasPendingUpdateRequest())
|
|
||||||
- deliverUpdateRequest();
|
|
||||||
-
|
|
||||||
- mWaitingForUpdateDelivery = false;
|
|
||||||
- };
|
|
||||||
-
|
|
||||||
- // Queued connection, to make sure we don't call handleUpdate() from inside waitForFrameSync()
|
|
||||||
- // in the single-threaded case.
|
|
||||||
- mWaitingForUpdateDelivery = true;
|
|
||||||
- QMetaObject::invokeMethod(this, doHandleExpose, Qt::QueuedConnection);
|
|
||||||
- }
|
|
||||||
+ auto doHandleExpose = [this]() {
|
|
||||||
+ bool wasExposed = isExposed();
|
|
||||||
+ mFrameCallbackTimedOut = false;
|
|
||||||
+ if (!wasExposed && isExposed()) // Did setting mFrameCallbackTimedOut make the window exposed?
|
|
||||||
+ sendExposeEvent(QRect(QPoint(), geometry().size()));
|
|
||||||
+ if (wasExposed && hasPendingUpdateRequest())
|
|
||||||
+ deliverUpdateRequest();
|
|
||||||
+ };
|
|
||||||
+
|
|
||||||
+ // Queued connection, to make sure we don't call handleUpdate() from inside waitForFrameSync()
|
|
||||||
+ // in the single-threaded case.
|
|
||||||
+ QMetaObject::invokeMethod(this, doHandleExpose, Qt::QueuedConnection);
|
|
||||||
|
|
||||||
mFrameSyncWait.notify_all();
|
|
||||||
}
|
|
||||||
diff --git a/src/client/qwaylandwindow_p.h b/src/client/qwaylandwindow_p.h
|
|
||||||
index d45980a8..3ff68ccb 100644
|
|
||||||
--- a/src/client/qwaylandwindow_p.h
|
|
||||||
+++ b/src/client/qwaylandwindow_p.h
|
|
||||||
@@ -228,7 +228,6 @@ protected:
|
|
||||||
WId mWindowId;
|
|
||||||
bool mWaitingForFrameCallback = false;
|
|
||||||
bool mFrameCallbackTimedOut = false; // Whether the frame callback has timed out
|
|
||||||
- bool mWaitingForUpdateDelivery = false;
|
|
||||||
int mFrameCallbackCheckIntervalTimerId = -1;
|
|
||||||
QElapsedTimer mFrameCallbackElapsedTimer;
|
|
||||||
struct ::wl_callback *mFrameCallback = nullptr;
|
|
||||||
--
|
|
||||||
2.34.0
|
|
||||||
|
|
@ -1,120 +0,0 @@
|
|||||||
From 95bdca4b2ff43205f0666a5beda124d8ca326954 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] Use proper dependencies in compile tests
|
|
||||||
|
|
||||||
Use the dependencies as found by the "libraries" section instead of relying
|
|
||||||
on them being available in the default location (e.g. "-ldrm").
|
|
||||||
|
|
||||||
Additionally, VK_USE_PLATFORM_WAYLAND_KHR requires <wayland-client.h>, so
|
|
||||||
add the wayland-client dependency.
|
|
||||||
|
|
||||||
This fixes those tests if e.g. wayland-client headers need to be found through
|
|
||||||
pkgconfig.
|
|
||||||
---
|
|
||||||
src/client/configure.json | 8 ++++----
|
|
||||||
src/compositor/configure.json | 34 +++++++++++++++++++++++++++++-----
|
|
||||||
2 files changed, 33 insertions(+), 9 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/client/configure.json b/src/client/configure.json
|
|
||||||
index 2f424580..29222357 100644
|
|
||||||
--- a/src/client/configure.json
|
|
||||||
+++ b/src/client/configure.json
|
|
||||||
@@ -149,8 +149,7 @@
|
|
||||||
"#endif"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
- "libs": "-ldrm",
|
|
||||||
- "use": "egl"
|
|
||||||
+ "use": "drm egl"
|
|
||||||
},
|
|
||||||
"vulkan-server-buffer": {
|
|
||||||
"label": "Vulkan Buffer Sharing",
|
|
||||||
@@ -168,7 +167,8 @@
|
|
||||||
"exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;",
|
|
||||||
"return 0;"
|
|
||||||
]
|
|
||||||
- }
|
|
||||||
+ },
|
|
||||||
+ "use": "wayland-client"
|
|
||||||
},
|
|
||||||
"egl_1_5-wayland": {
|
|
||||||
"label": "EGL 1.5 with Wayland Platform",
|
|
||||||
@@ -183,7 +183,7 @@
|
|
||||||
"eglGetPlatformDisplay(EGL_PLATFORM_WAYLAND_EXT, (struct wl_display *)(nullptr), nullptr);"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
- "use": "egl"
|
|
||||||
+ "use": "egl wayland-client"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
diff --git a/src/compositor/configure.json b/src/compositor/configure.json
|
|
||||||
index bcfd5215..da95d07b 100644
|
|
||||||
--- a/src/compositor/configure.json
|
|
||||||
+++ b/src/compositor/configure.json
|
|
||||||
@@ -7,6 +7,31 @@
|
|
||||||
"testDir": "../../config.tests",
|
|
||||||
|
|
||||||
"libraries": {
|
|
||||||
+ "wayland-client": {
|
|
||||||
+ "label": "Wayland client library",
|
|
||||||
+ "headers": "wayland-version.h",
|
|
||||||
+ "test": {
|
|
||||||
+ "main": [
|
|
||||||
+ "#if WAYLAND_VERSION_MAJOR < 1",
|
|
||||||
+ "# error Wayland 1.8.0 or higher required",
|
|
||||||
+ "#endif",
|
|
||||||
+ "#if WAYLAND_VERSION_MAJOR == 1",
|
|
||||||
+ "# if WAYLAND_VERSION_MINOR < 8",
|
|
||||||
+ "# error Wayland 1.8.0 or higher required",
|
|
||||||
+ "# endif",
|
|
||||||
+ "# if WAYLAND_VERSION_MINOR == 8",
|
|
||||||
+ "# if WAYLAND_VERSION_MICRO < 0",
|
|
||||||
+ "# error Wayland 1.8.0 or higher required",
|
|
||||||
+ "# endif",
|
|
||||||
+ "# endif",
|
|
||||||
+ "#endif"
|
|
||||||
+ ]
|
|
||||||
+ },
|
|
||||||
+ "sources": [
|
|
||||||
+ { "type": "pkgConfig", "args": "wayland-client" },
|
|
||||||
+ "-lwayland-client"
|
|
||||||
+ ]
|
|
||||||
+ },
|
|
||||||
"wayland-server": {
|
|
||||||
"label": "wayland-server",
|
|
||||||
"headers": "wayland-version.h",
|
|
||||||
@@ -151,8 +176,7 @@
|
|
||||||
"#endif"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
- "libs": "-ldrm",
|
|
||||||
- "use": "egl"
|
|
||||||
+ "use": "drm egl"
|
|
||||||
},
|
|
||||||
"dmabuf-client-buffer": {
|
|
||||||
"label": "Linux Client dma-buf Buffer Sharing",
|
|
||||||
@@ -176,8 +200,7 @@
|
|
||||||
"return 0;"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
- "libs": "-ldrm",
|
|
||||||
- "use": "egl"
|
|
||||||
+ "use": "drm egl"
|
|
||||||
},
|
|
||||||
"vulkan-server-buffer": {
|
|
||||||
"label": "Vulkan Buffer Sharing",
|
|
||||||
@@ -195,7 +218,8 @@
|
|
||||||
"exportAllocInfo.handleTypes = VK_EXTERNAL_MEMORY_HANDLE_TYPE_OPAQUE_FD_BIT_KHR;",
|
|
||||||
"return 0;"
|
|
||||||
]
|
|
||||||
- }
|
|
||||||
+ },
|
|
||||||
+ "use": "wayland-client"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
--
|
|
||||||
2.34.0
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
<servicedata>
|
<servicedata>
|
||||||
<service name="tar_scm">
|
<service name="tar_scm">
|
||||||
<param name="url">https://invent.kde.org/qt/qt/qtwayland.git</param>
|
<param name="url">https://invent.kde.org/qt/qt/qtwayland.git</param>
|
||||||
<param name="changesrevision">4644d51f4b52e83fc1b4d02b380d80d9d57e76fa</param></service></servicedata>
|
<param name="changesrevision">8f0c9169310344c8f179311bae446239cdb61f68</param></service></servicedata>
|
@ -1,3 +1,21 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Feb 22 15:32:53 UTC 2022 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
|
- Update to version 5.15.2+kde54:
|
||||||
|
* Use proper dependencies in compile tests
|
||||||
|
* Client: Fix opaque region setter
|
||||||
|
* client: Simplify round trip behavior (boo#1196302)
|
||||||
|
* Update the preedit styling mapping
|
||||||
|
* Cursor position == 0 should still show the cursor
|
||||||
|
* Client: Remove mWaitingForUpdateDelivery
|
||||||
|
* Fix crash if no input method module could be loaded
|
||||||
|
* Use wl_surface.damage_buffer on the client side
|
||||||
|
* Do not create decorations when the shellSurface is not ready
|
||||||
|
* Check pointer for null before use in ASSERT
|
||||||
|
- Drop patches, now upstream:
|
||||||
|
* 0001-Client-Remove-mWaitingForUpdateDelivery.patch
|
||||||
|
* 0001-Use-proper-dependencies-in-compile-tests.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Feb 3 16:51:41 UTC 2022 - Fabian Vogt <fabian@ritter-vogt.de>
|
Thu Feb 3 16:51:41 UTC 2022 - Fabian Vogt <fabian@ritter-vogt.de>
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@
|
|||||||
%define so_version 5.15.2
|
%define so_version 5.15.2
|
||||||
%define tar_version qtwayland-everywhere-src-%{version}
|
%define tar_version qtwayland-everywhere-src-%{version}
|
||||||
Name: libqt5-qtwayland
|
Name: libqt5-qtwayland
|
||||||
Version: 5.15.2+kde44
|
Version: 5.15.2+kde54
|
||||||
Release: 0
|
Release: 0
|
||||||
Summary: Qt 5 Wayland Addon
|
Summary: Qt 5 Wayland Addon
|
||||||
# The wayland compositor files are GPL-3.0-or-later
|
# The wayland compositor files are GPL-3.0-or-later
|
||||||
@ -37,14 +37,10 @@ Source: %{tar_version}.tar.xz
|
|||||||
Source1: baselibs.conf
|
Source1: baselibs.conf
|
||||||
# PATCH-FIX-OPENSUSE
|
# PATCH-FIX-OPENSUSE
|
||||||
Patch1: 0001-Revert-Bump-version.patch
|
Patch1: 0001-Revert-Bump-version.patch
|
||||||
# PATCH-FIX-UPSTREAM https://codereview.qt-project.org/c/qt/qtwayland/+/393273
|
|
||||||
Patch2: 0001-Client-Remove-mWaitingForUpdateDelivery.patch
|
|
||||||
# https://codereview.qt-project.org/c/qt/qtwayland/+/393828/1
|
# https://codereview.qt-project.org/c/qt/qtwayland/+/393828/1
|
||||||
Patch3: 0002-Guard-mResizeDirty-by-the-correctMutex.patch
|
Patch3: 0002-Guard-mResizeDirty-by-the-correctMutex.patch
|
||||||
# https://codereview.qt-project.org/c/qt/qtwayland/+/393826/1
|
# https://codereview.qt-project.org/c/qt/qtwayland/+/393826/1
|
||||||
Patch4: 0003-Fix-up-mutexes-for-frame-callbacks.patch
|
Patch4: 0003-Fix-up-mutexes-for-frame-callbacks.patch
|
||||||
# To be sent upstream
|
|
||||||
Patch10: 0001-Use-proper-dependencies-in-compile-tests.patch
|
|
||||||
BuildRequires: fdupes
|
BuildRequires: fdupes
|
||||||
BuildRequires: libqt5-qtbase-private-headers-devel >= %{real_version}
|
BuildRequires: libqt5-qtbase-private-headers-devel >= %{real_version}
|
||||||
BuildRequires: libqt5-qtdeclarative-private-headers-devel >= %{real_version}
|
BuildRequires: libqt5-qtdeclarative-private-headers-devel >= %{real_version}
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:aaf9f796ebb53d93f871e25097797360ab185614ae7ee88b9aa50ecd2b36c369
|
|
||||||
size 4691468
|
|
3
qtwayland-everywhere-src-5.15.2+kde54.obscpio
Normal file
3
qtwayland-everywhere-src-5.15.2+kde54.obscpio
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:6a85a954605f8d6677f8011750fb5f8f024e1c7b1de9d1e53d5dab2d769ddaf4
|
||||||
|
size 4691980
|
@ -1,5 +1,4 @@
|
|||||||
name: qtwayland-everywhere-src
|
name: qtwayland-everywhere-src
|
||||||
version: 5.15.2+kde44
|
version: 5.15.2+kde54
|
||||||
mtime: 1642608988
|
mtime: 1645543848
|
||||||
commit: 4644d51f4b52e83fc1b4d02b380d80d9d57e76fa
|
commit: 8f0c9169310344c8f179311bae446239cdb61f68
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user