Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package kf6-kwindowsystem for
openSUSE:Factory checked in at 2026-07-15 16:32:09
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kf6-kwindowsystem (Old)
and /work/SRC/openSUSE:Factory/.kf6-kwindowsystem.new.1991 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kf6-kwindowsystem"
Wed Jul 15 16:32:09 2026 rev:29 rq:1365139 version:6.28.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/kf6-kwindowsystem/kf6-kwindowsystem.changes
2026-06-16 13:57:31.895530609 +0200
+++
/work/SRC/openSUSE:Factory/.kf6-kwindowsystem.new.1991/kf6-kwindowsystem.changes
2026-07-15 16:42:01.411338606 +0200
@@ -1,0 +2,15 @@
+Fri Jul 10 12:16:07 UTC 2026 - Christophe Marin <[email protected]>
+
+- Update to 6.28.0
+ * New feature release
+ * For more details please see:
+ * https://kde.org/announcements/frameworks/6/6.28.0
+- Changes since 6.27.0:
+ * platforms/xcb: Handle Xwayland restarts better
+ * platforms/xcb: Manage atoms with a shared pointer
+ * Update dependency version to 6.28.0
+ * Restore guard for null window in exportWindow (kde#521241)
+ * Provide a future based API to export a window
+ * Update version to 6.28.0
+
+-------------------------------------------------------------------
Old:
----
kwindowsystem-6.27.0.tar.xz
kwindowsystem-6.27.0.tar.xz.sig
New:
----
kwindowsystem-6.28.0.tar.xz
kwindowsystem-6.28.0.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kf6-kwindowsystem.spec ++++++
--- /var/tmp/diff_new_pack.xO7ihK/_old 2026-07-15 16:42:11.307675092 +0200
+++ /var/tmp/diff_new_pack.xO7ihK/_new 2026-07-15 16:42:11.311675228 +0200
@@ -19,11 +19,11 @@
%define qt6_version 6.9.0
%define rname kwindowsystem
-# Full KF6 version (e.g. 6.27.0)
+# Full KF6 version (e.g. 6.28.0)
%{!?_kf6_version: %global _kf6_version %{version}}
%bcond_without released
Name: kf6-kwindowsystem
-Version: 6.27.0
+Version: 6.28.0
Release: 0
Summary: KDE Access to window manager
License: LGPL-2.1-or-later
++++++ kwindowsystem-6.27.0.tar.xz -> kwindowsystem-6.28.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwindowsystem-6.27.0/CMakeLists.txt
new/kwindowsystem-6.28.0/CMakeLists.txt
--- old/kwindowsystem-6.27.0/CMakeLists.txt 2026-06-05 17:50:04.000000000
+0200
+++ new/kwindowsystem-6.28.0/CMakeLists.txt 2026-07-03 13:01:22.000000000
+0200
@@ -1,11 +1,11 @@
cmake_minimum_required(VERSION 3.29)
-set(KF_VERSION "6.27.0") # handled by release scripts
+set(KF_VERSION "6.28.0") # handled by release scripts
project(KWindowSystem VERSION ${KF_VERSION})
# ECM setup
include(FeatureSummary)
-find_package(ECM 6.27.0 NO_MODULE)
+find_package(ECM 6.28.0 NO_MODULE)
set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake
Modules." URL "https://commits.kde.org/extra-cmake-modules")
feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND
FATAL_ON_MISSING_REQUIRED_PACKAGES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwindowsystem-6.27.0/poqm/ia/kwindowsystem6_qt.po
new/kwindowsystem-6.28.0/poqm/ia/kwindowsystem6_qt.po
--- old/kwindowsystem-6.27.0/poqm/ia/kwindowsystem6_qt.po 2026-06-05
17:50:04.000000000 +0200
+++ new/kwindowsystem-6.28.0/poqm/ia/kwindowsystem6_qt.po 2026-07-03
13:01:22.000000000 +0200
@@ -995,7 +995,7 @@
#~ msgstr "Patronos"
#~ msgid "Wallpapers"
-#~ msgstr "Tapetes de papiro"
+#~ msgstr "Fundos de schermo"
#~ msgid "XDG Application menu (.desktop files)"
#~ msgstr "XDG Menu de applicationes (files .desktop)"
@@ -8618,7 +8618,7 @@
#~ msgid "Too many requests to server. Please try again in a few minutes."
#~ msgstr ""
-#~ "Troppo requestas a le servitor. Pro favor prova de nove inter pauc "
+#~ "Troppo requestas a le servitor. Pro favor prova de nove inter pauco "
#~ "minutas."
#~ msgid "Unknown Open Collaboration Service API error. (%1)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwindowsystem-6.27.0/poqm/nb/kwindowsystem6_qt.po
new/kwindowsystem-6.28.0/poqm/nb/kwindowsystem6_qt.po
--- old/kwindowsystem-6.27.0/poqm/nb/kwindowsystem6_qt.po 2026-06-05
17:50:04.000000000 +0200
+++ new/kwindowsystem-6.28.0/poqm/nb/kwindowsystem6_qt.po 2026-07-03
13:01:22.000000000 +0200
@@ -14,7 +14,7 @@
"POT-Creation-Date: 2014-02-28 03:44+0000\n"
"PO-Revision-Date: 2014-04-25 15:53+0200\n"
"Last-Translator: Bjørn Steensrud <[email protected]>\n"
-"Language-Team: Norwegian Bokmål <[email protected]>\n"
+"Language-Team: Norwegian Bokmål <[email protected]>\n"
"Language: nb\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwindowsystem-6.27.0/poqm/nn/kwindowsystem6_qt.po
new/kwindowsystem-6.28.0/poqm/nn/kwindowsystem6_qt.po
--- old/kwindowsystem-6.27.0/poqm/nn/kwindowsystem6_qt.po 2026-06-05
17:50:04.000000000 +0200
+++ new/kwindowsystem-6.28.0/poqm/nn/kwindowsystem6_qt.po 2026-07-03
13:01:22.000000000 +0200
@@ -11,7 +11,7 @@
"POT-Creation-Date: 2014-02-28 03:44+0000\n"
"PO-Revision-Date: 2015-06-03 19:20+0100\n"
"Last-Translator: Karl Ove Hufthammer <[email protected]>\n"
-"Language-Team: Norwegian Nynorsk <[email protected]>\n"
+"Language-Team: Norwegian Nynorsk <[email protected]>\n"
"Language: nn\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwindowsystem-6.27.0/poqm/se/kwindowsystem6_qt.po
new/kwindowsystem-6.28.0/poqm/se/kwindowsystem6_qt.po
--- old/kwindowsystem-6.27.0/poqm/se/kwindowsystem6_qt.po 2026-06-05
17:50:04.000000000 +0200
+++ new/kwindowsystem-6.28.0/poqm/se/kwindowsystem6_qt.po 2026-07-03
13:01:22.000000000 +0200
@@ -8,7 +8,7 @@
"POT-Creation-Date: 2014-02-28 03:44+0000\n"
"PO-Revision-Date: 2012-05-30 23:19+0200\n"
"Last-Translator: Børre Gaup <[email protected]>\n"
-"Language-Team: Northern Sami <[email protected]>\n"
+"Language-Team: Northern Sami <[email protected]>\n"
"Language: se\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwindowsystem-6.27.0/src/CMakeLists.txt
new/kwindowsystem-6.28.0/src/CMakeLists.txt
--- old/kwindowsystem-6.27.0/src/CMakeLists.txt 2026-06-05 17:50:04.000000000
+0200
+++ new/kwindowsystem-6.28.0/src/CMakeLists.txt 2026-07-03 13:01:22.000000000
+0200
@@ -86,7 +86,7 @@
VERSION ${KF_VERSION}
USE_VERSION_HEADER
DEPRECATED_BASE_VERSION 0
- DEPRECATION_VERSIONS 6.0 6.19
+ DEPRECATION_VERSIONS 6.0 6.19 6.28
EXCLUDE_DEPRECATED_BEFORE_AND_AT ${EXCLUDE_DEPRECATED_BEFORE_AND_AT}
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwindowsystem-6.27.0/src/kwaylandextras.cpp
new/kwindowsystem-6.28.0/src/kwaylandextras.cpp
--- old/kwindowsystem-6.27.0/src/kwaylandextras.cpp 2026-06-05
17:50:04.000000000 +0200
+++ new/kwindowsystem-6.28.0/src/kwaylandextras.cpp 2026-07-03
13:01:22.000000000 +0200
@@ -51,6 +51,7 @@
return dv2->lastInputSerial(window);
}
+#if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(6, 28)
void KWaylandExtras::exportWindow(QWindow *window)
{
if (auto dv2 = dynamic_cast<KWindowSystemPrivateV2
*>(KWindowSystem::d_func())) {
@@ -64,6 +65,50 @@
dv2->unexportWindow(window);
}
}
+#endif
+
+QFuture<QString> KWaylandExtras::exportToplevel(QWindow *window)
+{
+ if (auto dv5 = dynamic_cast<KWindowSystemPrivateV5
*>(KWindowSystem::d_func())) {
+ return dv5->exportToplevel(window);
+ }
+#if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(6, 28)
+ exportWindow(window);
+ QPromise<QString> promise;
+ promise.start();
+ auto future = promise.future();
+ auto connection = std::make_unique<QMetaObject::Connection>();
+ auto &connectionRef = *connection;
+ connectionRef =
+ connect(self(),
+ &KWaylandExtras::windowExported,
+ window,
+ [wanted = window, promise = std::move(promise), connection =
std::move(connection)](QWindow *window, const QString &handle) mutable {
+ if (window != wanted) {
+ return;
+ }
+ promise.addResult(handle);
+ promise.finish();
+ QObject::disconnect(*connection);
+ });
+
+ return future;
+#else
+ return QtFuture::makeReadyValueFuture(QString());
+#endif
+}
+
+void KWaylandExtras::unexportToplevel(QWindow *window)
+{
+ if (auto dv5 = dynamic_cast<KWindowSystemPrivateV5
*>(KWindowSystem::d_func())) {
+ dv5->unexportToplevel(window);
+ }
+#if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(6, 28)
+ else {
+ unexportWindow(window);
+ }
+#endif
+}
QFuture<QString> KWaylandExtras::xdgActivationToken(QWindow *window, uint32_t
serial, const QString &appId)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwindowsystem-6.27.0/src/kwaylandextras.h
new/kwindowsystem-6.28.0/src/kwaylandextras.h
--- old/kwindowsystem-6.27.0/src/kwaylandextras.h 2026-06-05
17:50:04.000000000 +0200
+++ new/kwindowsystem-6.28.0/src/kwaylandextras.h 2026-07-03
13:01:22.000000000 +0200
@@ -49,12 +49,15 @@
*/
Q_INVOKABLE static quint32 lastInputSerial(QWindow *window);
+#if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(6, 28)
/*!
* Requests to export the given \a window using xdg_foreign_v2.
*
* \sa windowExported
* \since 6.0
+ * \deprecated [6.28] Use exportToplevel() instead.
*/
+ KWINDOWSYSTEM_DEPRECATED_VERSION(6, 28, "Use exportToplevel()")
Q_INVOKABLE static void exportWindow(QWindow *window);
/*!
@@ -63,8 +66,29 @@
* Asks the compositor to revoke the handle.
*
* \since 6.0
+ * \deprecated [6.28] Use unexportToplevel() instead.
*/
+ KWINDOWSYSTEM_DEPRECATED_VERSION(6, 28, "Use unexportToplevel()")
Q_INVOKABLE static void unexportWindow(QWindow *window);
+#endif
+
+ /*!
+ * Requests to export the given \a window using xdg_foreign_v2.
+ * The window must be a toplevel window and not a popup.
+ *
+ * If the export fails, an empty string will be the result of the
operation.
+ * \since 6.28
+ */
+ static QFuture<QString> exportToplevel(QWindow *window);
+
+ /*!
+ * Unexports the \a window previously exported exportToplevel()
+ *
+ * Asks the compositor to revoke a previously exported handle for \a
window.
+ *
+ * \since 6.28
+ */
+ Q_INVOKABLE static void unexportToplevel(QWindow *window);
/*!
* Requests an xdg_activation_v1 token for a specific window \a window
with the given \a appId.
@@ -117,12 +141,15 @@
KWINDOWSYSTEM_DEPRECATED_VERSION(6, 19, "Use xdgActivationToken()") void
xdgActivationTokenArrived(int serial, const QString &token);
#endif
+#if KWINDOWSYSTEM_ENABLE_DEPRECATED_SINCE(6, 28)
/*!
* The \a handle of the given \a window to pass to the client.
* \sa exportWindow
* \since 6.0
+ * \deprecated [6.28] Use exportToplevel() instead.
*/
void windowExported(QWindow *window, const QString &handle);
+#endif
private:
KWaylandExtras();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwindowsystem-6.27.0/src/kwindowsystem_p.h
new/kwindowsystem-6.28.0/src/kwindowsystem_p.h
--- old/kwindowsystem-6.27.0/src/kwindowsystem_p.h 2026-06-05
17:50:04.000000000 +0200
+++ new/kwindowsystem-6.28.0/src/kwindowsystem_p.h 2026-07-03
13:01:22.000000000 +0200
@@ -33,8 +33,10 @@
virtual void setCurrentToken(const QString &token) = 0;
virtual quint32 lastInputSerial(QWindow *window) = 0;
virtual void setMainWindow(QWindow *window, const QString &handle) = 0;
+#if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(6, 28)
virtual void exportWindow(QWindow *window) = 0;
virtual void unexportWindow(QWindow *window) = 0;
+#endif
};
class KWINDOWSYSTEM_EXPORT KWindowSystemPrivateV3 : public
KWindowSystemPrivateV2
@@ -50,4 +52,11 @@
virtual void setXdgToplevelDescription(QWindow *window, const QString
&description) = 0;
};
+class KWINDOWSYSTEM_EXPORT KWindowSystemPrivateV5 : public
KWindowSystemPrivateV4
+{
+public:
+ virtual QFuture<QString> exportToplevel(QWindow *window) = 0;
+ virtual void unexportToplevel(QWindow *window) = 0;
+};
+
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwindowsystem-6.27.0/src/platforms/wayland/windowsystem.cpp
new/kwindowsystem-6.28.0/src/platforms/wayland/windowsystem.cpp
--- old/kwindowsystem-6.27.0/src/platforms/wayland/windowsystem.cpp
2026-06-05 17:50:04.000000000 +0200
+++ new/kwindowsystem-6.28.0/src/platforms/wayland/windowsystem.cpp
2026-07-03 13:01:22.000000000 +0200
@@ -132,44 +132,41 @@
return m_windowManagement->showingDesktop;
}
+#if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(6, 28)
void WindowSystem::exportWindow(QWindow *window)
{
- auto emitHandle = [window](const QString &handle) {
- // Ensure that windowExported is always emitted asynchronously.
- QMetaObject::invokeMethod(
- window,
- [window, handle] {
- Q_EMIT KWaylandExtras::self()->windowExported(window, handle);
- },
- Qt::QueuedConnection);
- };
-
if (!window) {
return;
}
+ exportToplevel(window).then(window, [window](const QString &handle) {
+ QMetaObject::invokeMethod(KWaylandExtras::self(),
&KWaylandExtras::windowExported, Qt::QueuedConnection, window, handle);
+ });
+}
+#endif
+
+QFuture<QString> WindowSystem::exportToplevel(QWindow *window)
+{
+ if (!window) {
+ return QtFuture::makeReadyValueFuture(QString());
+ }
window->create();
auto waylandWindow =
window->nativeInterface<QNativeInterface::Private::QWaylandWindow>();
if (!waylandWindow) {
- emitHandle({});
- return;
+ return QtFuture::makeReadyValueFuture(QString());
}
auto &exporter = WaylandXdgForeignExporterV2::self();
if (!exporter.isActive()) {
- emitHandle({});
- return;
+ return QtFuture::makeReadyValueFuture(QString());
}
- // We want to use QObject::property(char*) and use dynamic properties on
the object rather than
- // call QWaylandWindow::property(QString) and send it around.
WaylandXdgForeignExportedV2 *exported =
waylandWindow->property(c_kdeXdgForeignExportedProperty).value<WaylandXdgForeignExportedV2
*>();
if (!exported) {
if (!xdgToplevelForWindow(window)) {
qCWarning(KWAYLAND_KWS) << window << "is not an XDG toplevel,
cannot export";
- emitHandle({});
- return;
+ return QtFuture::makeReadyValueFuture(QString());
}
exported = exporter.exportToplevel(surfaceForWindow(window));
@@ -179,19 +176,32 @@
connect(exported, &QObject::destroyed, waylandWindow, [waylandWindow] {
waylandWindow->setProperty(c_kdeXdgForeignExportedProperty,
QVariant());
});
-
- connect(exported, &WaylandXdgForeignExportedV2::handleReceived,
window, [window](const QString &handle) {
- Q_EMIT KWaylandExtras::self()->windowExported(window, handle);
- });
}
if (!exported->handle().isEmpty()) {
- emitHandle(exported->handle());
+ return QtFuture::makeReadyValueFuture(exported->handle());
}
-}
+ QPromise<QString> promise;
+ promise.start();
+ auto future = promise.future();
+
+ connect(exported, &WaylandXdgForeignExportedV2::handleReceived, exported,
[p = std::move(promise)](const QString &handle) mutable {
+ p.addResult(handle);
+ p.finish();
+ });
+
+ return future;
+}
+#if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(6, 28)
void WindowSystem::unexportWindow(QWindow *window)
{
+ unexportToplevel(window);
+}
+#endif
+
+void WindowSystem::unexportToplevel(QWindow *window)
+{
auto waylandWindow = window ?
window->nativeInterface<QNativeInterface::Private::QWaylandWindow>() : nullptr;
if (!waylandWindow) {
return;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwindowsystem-6.27.0/src/platforms/wayland/windowsystem.h
new/kwindowsystem-6.28.0/src/platforms/wayland/windowsystem.h
--- old/kwindowsystem-6.27.0/src/platforms/wayland/windowsystem.h
2026-06-05 17:50:04.000000000 +0200
+++ new/kwindowsystem-6.28.0/src/platforms/wayland/windowsystem.h
2026-07-03 13:01:22.000000000 +0200
@@ -12,7 +12,7 @@
class WindowManagement;
-class WindowSystem : public QObject, public KWindowSystemPrivateV4
+class WindowSystem : public QObject, public KWindowSystemPrivateV5
{
Q_OBJECT
public:
@@ -26,8 +26,12 @@
void setCurrentToken(const QString &token) override;
bool showingDesktop() override;
void setShowingDesktop(bool showing) override;
+#if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(6, 19)
void exportWindow(QWindow *window) override;
void unexportWindow(QWindow *window) override;
+#endif
+ QFuture<QString> exportToplevel(QWindow *window) override;
+ void unexportToplevel(QWindow *window) override;
void setMainWindow(QWindow *window, const QString &handle) override;
QFuture<QString> xdgActivationToken(QWindow *window, uint32_t serial,
const QString &appId) override;
void setXdgToplevelTag(QWindow *window, const QString &tag) override;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwindowsystem-6.27.0/src/platforms/xcb/netwm.cpp
new/kwindowsystem-6.28.0/src/platforms/xcb/netwm.cpp
--- old/kwindowsystem-6.27.0/src/platforms/xcb/netwm.cpp 2026-06-05
17:50:04.000000000 +0200
+++ new/kwindowsystem-6.28.0/src/platforms/xcb/netwm.cpp 2026-07-03
13:01:22.000000000 +0200
@@ -44,23 +44,39 @@
xcb_window_t window_group;
};
-typedef QHash<xcb_connection_t *, QSharedDataPointer<Atoms>> AtomHash;
-Q_GLOBAL_STATIC(AtomHash, s_gAtomsHash)
+// These are atoms that are used in the Xorg session.
+typedef QHash<xcb_connection_t *, QSharedPointer<Atoms>> PersistentAtomHash;
+Q_GLOBAL_STATIC(PersistentAtomHash, s_gAtomsHash)
-static QSharedDataPointer<Atoms> atomsForConnection(xcb_connection_t *c)
+// These are atoms that are used on Wayland. It is mainly relevant for
KWin/Wayland.
+// On Wayland, X11 connections can appear and disappear if Xwayland crashes or
restarts.
+typedef QHash<xcb_connection_t *, QWeakPointer<Atoms>> TransientAtomHash;
+Q_GLOBAL_STATIC(TransientAtomHash, s_gTransientAtomsHash)
+
+static QSharedPointer<Atoms> atomsForConnection(xcb_connection_t *c)
{
- auto it = s_gAtomsHash->constFind(c);
- if (it == s_gAtomsHash->constEnd()) {
- QSharedDataPointer<Atoms> atom(new Atoms(c));
- s_gAtomsHash->insert(c, atom);
- return atom;
+ if (QX11Info::isPlatformX11()) {
+ auto it = s_gAtomsHash->constFind(c);
+ if (it == s_gAtomsHash->constEnd()) {
+ QSharedPointer<Atoms> atom(new Atoms(c));
+ s_gAtomsHash->insert(c, atom);
+ return atom;
+ }
+ return it.value();
+ } else {
+ auto &atoms = (*s_gTransientAtomsHash)[c];
+ if (atoms) {
+ return atoms;
+ }
+
+ auto ref = QSharedPointer<Atoms>::create(c);
+ atoms = ref;
+ return ref;
}
- return it.value();
}
Atoms::Atoms(xcb_connection_t *c)
- : QSharedData()
- , m_connection(c)
+ : m_connection(c)
{
for (int i = 0; i < KwsAtomCount; ++i) {
m_atoms[i] = XCB_ATOM_NONE;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwindowsystem-6.27.0/src/platforms/xcb/netwm_p.h
new/kwindowsystem-6.28.0/src/platforms/xcb/netwm_p.h
--- old/kwindowsystem-6.27.0/src/platforms/xcb/netwm_p.h 2026-06-05
17:50:04.000000000 +0200
+++ new/kwindowsystem-6.28.0/src/platforms/xcb/netwm_p.h 2026-07-03
13:01:22.000000000 +0200
@@ -8,12 +8,11 @@
#ifndef netwm_p_h
#define netwm_p_h
-#include <QSharedData>
-#include <QSharedDataPointer>
+#include <QSharedPointer>
#include "atoms_p.h"
-class Atoms : public QSharedData
+class Atoms
{
public:
explicit Atoms(xcb_connection_t *c);
@@ -126,7 +125,7 @@
int ref;
- QSharedDataPointer<Atoms> atoms;
+ QSharedPointer<Atoms> atoms;
xcb_atom_t atom(KwsAtom atom) const
{
return atoms->atom(atom);
@@ -185,7 +184,7 @@
int ref;
- QSharedDataPointer<Atoms> atoms;
+ QSharedPointer<Atoms> atoms;
xcb_atom_t atom(KwsAtom atom) const
{
return atoms->atom(atom);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwindowsystem-6.27.0/tests/kwaylandextrastest.cpp
new/kwindowsystem-6.28.0/tests/kwaylandextrastest.cpp
--- old/kwindowsystem-6.27.0/tests/kwaylandextrastest.cpp 2026-06-05
17:50:04.000000000 +0200
+++ new/kwindowsystem-6.28.0/tests/kwaylandextrastest.cpp 2026-07-03
13:01:22.000000000 +0200
@@ -56,16 +56,7 @@
void Window::exportWindow()
{
- connect(
- KWaylandExtras::self(),
- &KWaylandExtras::windowExported,
- this,
- [this](QWindow *window, const QString &handle) {
- Q_UNUSED(window);
- setExportedHandle(handle);
- },
- Qt::SingleShotConnection);
- KWaylandExtras::exportWindow(windowHandle());
+
KWaylandExtras::exportToplevel(windowHandle()).then(std::bind_front(&Window::setExportedHandle,
this));
}
void Window::unexportWindow()