Resolves: RHEL-27845
Resolves: RHEL-31172
Resolves: RHEL-33724
This commit is contained in:
Jan Grulich 2024-04-23 11:32:05 +02:00
parent d58664bc08
commit 2f678cd879
7 changed files with 1132 additions and 96 deletions

1
.gitignore vendored
View File

@ -23,3 +23,4 @@
/qtwayland-everywhere-src-6.5.3.tar.xz
/qtwayland-everywhere-src-6.6.0.tar.xz
/qtwayland-everywhere-src-6.6.1.tar.xz
/qtwayland-everywhere-src-6.7.0.tar.xz

View File

@ -11,8 +11,8 @@
Summary: Qt6 - Wayland platform support and QtCompositor module
Name: qt6-%{qt_module}
Version: 6.6.1
Release: 6%{?dist}
Version: 6.7.0
Release: 1%{?dist}
License: LGPL-3.0-only OR GPL-3.0-only WITH Qt-GPL-exception-1.0
Url: http://www.qt.io
@ -26,11 +26,11 @@ Source0: https://download.qt.io/official_releases/qt/%{majmin}/%{version}/submod
%endif
# Upstream patches
Patch0: qtwayland-client-disable-threaded-gl-on-desktop-nvidia.patch
Patch1: qtwayland-client-fix-qt-keypadmodifier-for-key-events.patch
# Backport Qt Adwaita decorations from upstream to qt6-qtwayland package
# https://issues.redhat.com/browse/DESKTOP-883
Patch0: qtwayland-add-gnome-like-csd-plugin.patch
# Upstreamable patches
Patch10: qtwayland-use-adwaita-decorations-by-default.patch
# filter qml provides
%global __provides_exclude_from ^%{_qt6_archdatadir}/qml/.*\\.so$
@ -43,6 +43,7 @@ BuildRequires: qt6-qtbase-static
BuildRequires: qt6-qtbase-private-devel
%{?_qt6:Requires: %{_qt6}%{?_isa} = %{_qt6_version}}
BuildRequires: qt6-qtdeclarative-devel
BuildRequires: qt6-qtsvg-devel
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(wayland-scanner)
@ -94,7 +95,8 @@ Requires: %{name}%{?_isa} = %{version}-%{release}
%build
%cmake_qt6 \
-DQT_BUILD_EXAMPLES:BOOL=%{?examples:ON}%{!?examples:OFF} \
-DQT_BUILD_TESTS=%{?build_tests:ON}%{!?build_tests:OFF}
-DQT_BUILD_TESTS=%{?build_tests:ON}%{!?build_tests:OFF} \
-DQT_INSTALL_EXAMPLES_SOURCES=%{?examples:ON}%{!?examples:OFF}
%cmake_build
@ -199,6 +201,12 @@ popd
%endif
%changelog
* Fri Apr 19 2024 Jan Grulich <jgrulich@redhat.com> - 6.7.0-1
- 6.7.0
Resolves: RHEL-27845
Resolves: RHEL-31172
Resolves: RHEL-33724
* Tue Apr 02 2024 Jan Grulich <jgrulich@redhat.com> - 6.6.1-6
- Add -tests subpackage with unit tests that can run in CI
Resolves: RHEL-28239

File diff suppressed because it is too large Load Diff

View File

@ -1,40 +0,0 @@
From e4156bad6398dcbe8740041148d95ee9ed437d8b Mon Sep 17 00:00:00 2001
From: David Redondo <qt@david-redondo.de>
Date: Wed, 31 Jan 2024 09:01:48 +0100
Subject: [PATCH] client: Disable threaded GL on desktop NVIDIA
Otherwise QtQuick windows freeze when resized.
In order to still use threaded rendering on
embedded platforms where resizing is not required
we check if XDG_CURRENT_DESKTOP which should be
set by desktop environments.
Task-number: QTBUG-95817
Pick-to: 6.6.2
Change-Id: Ic2348c3169e0ade8c5463e3d7c7a1c45037a89a7
Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@qt.io>
Reviewed-by: David Edmundson <davidedmundson@kde.org>
(cherry picked from commit 6d83cf94b568fa9e591761a182cf84e3959fbf32)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit 38348ce5b06624cb6e36f814ebdfbc3ec61f1691)
Reviewed-by: David Redondo <qt@david-redondo.de>
---
diff --git a/src/hardwareintegration/client/wayland-egl/qwaylandeglclientbufferintegration.cpp b/src/hardwareintegration/client/wayland-egl/qwaylandeglclientbufferintegration.cpp
index cc7ee90..3b97aef 100644
--- a/src/hardwareintegration/client/wayland-egl/qwaylandeglclientbufferintegration.cpp
+++ b/src/hardwareintegration/client/wayland-egl/qwaylandeglclientbufferintegration.cpp
@@ -92,6 +92,13 @@
break;
}
}
+
+ // On desktop NVIDIA resizing QtQuick freezes them when using threaded rendering QTBUG-95817
+ // In order to support threaded rendering on embedded platforms where resizing is not needed
+ // we check if XDG_CURRENT_DESKTOP is set which desktop environments should set
+ if (qstrcmp(vendor, "NVIDIA") == 0 && qEnvironmentVariableIsSet("XDG_CURRENT_DESKTOP")) {
+ m_supportsThreading = false;
+ }
}
bool QWaylandEglClientBufferIntegration::isValid() const

View File

@ -1,35 +0,0 @@
From e0796865151b06dddc5c5665f9ca8bdc8021fcd8 Mon Sep 17 00:00:00 2001
From: Nicolas Fella <nicolas.fella@kde.org>
Date: Wed, 24 Jan 2024 01:39:24 +0100
Subject: [PATCH] Client: Fix Qt::KeypadModifier for key events
Use the right QXkbCommon::modifiers overload that can resolve the
modifier.
f614fdfa5dc522f805c7c061535df6a0dc7409b9 did this for wayland-server,
do the same for the client side
Pick-to: 6.5
Change-Id: Iff0c105cb31201241d4972a7772cf997cede3fc3
Reviewed-by: Liang Qi <liang.qi@qt.io>
(cherry picked from commit 17e46725c5971a3067d5abd5506fde6c03d0935f)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
(cherry picked from commit bec69733f67e65de456e63db600f4e871ae2b53b)
---
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 a4f8757e3..8d6ebba08 100644
--- a/src/client/qwaylandinputdevice.cpp
+++ b/src/client/qwaylandinputdevice.cpp
@@ -1335,8 +1335,7 @@ void QWaylandInputDevice::Keyboard::keyboard_key(uint32_t serial, uint32_t time,
auto code = key + 8; // map to wl_keyboard::keymap_format::keymap_format_xkb_v1
xkb_keysym_t sym = xkb_state_key_get_one_sym(mXkbState.get(), code);
-
- Qt::KeyboardModifiers modifiers = mParent->modifiers();
+ Qt::KeyboardModifiers modifiers = QXkbCommon::modifiers(mXkbState.get(), sym);
int qtkey = keysymToQtKey(sym, modifiers, mXkbState.get(), code);
QString text = QXkbCommon::lookupString(mXkbState.get(), code);

View File

@ -1,14 +0,0 @@
diff --git a/src/client/qwaylandintegration.cpp b/src/client/qwaylandintegration.cpp
index 06a1aec..bb387f1 100644
--- a/src/client/qwaylandintegration.cpp
+++ b/src/client/qwaylandintegration.cpp
@@ -87,6 +87,9 @@ QWaylandIntegration::QWaylandIntegration()
QWaylandWindow::fixedToplevelPositions =
!qEnvironmentVariableIsSet("QT_WAYLAND_DISABLE_FIXED_POSITIONS");
+ if (!qEnvironmentVariableIsSet("QT_WAYLAND_DECORATION"))
+ qputenv("QT_WAYLAND_DECORATION", "adwaita");
+
sInstance = this;
}

View File

@ -1 +1 @@
SHA512 (qtwayland-everywhere-src-6.6.1.tar.xz) = 7f6533754daad7a2804ddddcd5139608c2b8f1ef92ae8a238c1ed4fc41c8a3ee532da0b2e57266d07d4d39d1ec6c83eca487c73788a108af30035b0dae262c76
SHA512 (qtwayland-everywhere-src-6.7.0.tar.xz) = cda0e0736f85656d05b2399970413ffc5082af4256c8b3087c3f1d06cad5ef5ad7cb8838513723569193df02cd3c3df3d5478d99464606c62c42629ef75c225f