Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kwayland6 for openSUSE:Factory checked in at 2026-06-18 21:35:33 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kwayland6 (Old) and /work/SRC/openSUSE:Factory/.kwayland6.new.1981 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwayland6" Thu Jun 18 21:35:33 2026 rev:42 rq:1359161 version:6.7.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kwayland6/kwayland6.changes 2026-05-13 21:38:21.597286474 +0200 +++ /work/SRC/openSUSE:Factory/.kwayland6.new.1981/kwayland6.changes 2026-06-18 21:35:57.804437516 +0200 @@ -1,0 +2,33 @@ +Fri Jun 12 19:07:36 UTC 2026 - Fabian Vogt <[email protected]> + +- Update to 6.7.0: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.7.0 +- Changes since 6.6.91: + * Update version for new release 6.7.0 + +------------------------------------------------------------------- +Thu May 28 18:44:28 UTC 2026 - Fabian Vogt <[email protected]> + +- Update to 6.6.91: + * New bugfix release + * For more details see https://kde.org/announcements/plasma/6/6.6.91 +- Changes since 6.6.90: + * Update version for new release 6.6.91 + * Does not build without PlasmaWaylandProtocols 1.21.0 + +------------------------------------------------------------------- +Sun May 24 11:17:46 UTC 2026 - Fabian Vogt <[email protected]> + +- Update to 6.6.90: + * New feature release + * For more details see https://kde.org/announcements/plasma/6/6.6.90 +- Changes since 6.6.5: + * Update version for new release 6.6.90 + * Use default DEFAULT_SEVERITY for logging + * add support for per-output virtual desktops + * add PlasmaVirtualDesktop::position + * Destroy server side wl_registry object too + * Update version for new release 6.6.80 + +------------------------------------------------------------------- Old: ---- kwayland-6.6.5.tar.xz kwayland-6.6.5.tar.xz.sig New: ---- kwayland-6.7.0.tar.xz kwayland-6.7.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kwayland6.spec ++++++ --- /var/tmp/diff_new_pack.9fSmIw/_old 2026-06-18 21:35:58.608471112 +0200 +++ /var/tmp/diff_new_pack.9fSmIw/_new 2026-06-18 21:35:58.608471112 +0200 @@ -16,20 +16,20 @@ # -%define kf6_version 6.18.0 -%define qt6_version 6.9.0 +%define kf6_version 6.26.0 +%define qt6_version 6.10.0 %define rname kwayland %bcond_without released Name: kwayland6 -Version: 6.6.5 +Version: 6.7.0 Release: 0 Summary: KDE Wayland library License: LGPL-2.1-or-later URL: https://www.kde.org -Source: https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz +Source: %{rname}-%{version}.tar.xz %if %{with released} -Source1: https://download.kde.org/stable/plasma/%{version}/%{rname}-%{version}.tar.xz.sig +Source1: %{rname}-%{version}.tar.xz.sig Source2: plasma.keyring %endif BuildRequires: doxygen ++++++ kwayland-6.6.5.tar.xz -> kwayland-6.7.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-6.6.5/CMakeLists.txt new/kwayland-6.7.0/CMakeLists.txt --- old/kwayland-6.6.5/CMakeLists.txt 2026-05-12 12:26:25.000000000 +0200 +++ new/kwayland-6.7.0/CMakeLists.txt 2026-06-11 11:33:07.000000000 +0200 @@ -1,10 +1,10 @@ cmake_minimum_required(VERSION 3.16) -set(PROJECT_VERSION "6.6.5") +set(PROJECT_VERSION "6.7.0") project(kwayland VERSION ${PROJECT_VERSION}) set(QT_MIN_VERSION "6.10.0") -set(KF6_MIN_VERSION "6.22.0") +set(KF6_MIN_VERSION "6.26.0") set(CMAKE_CXX_STANDARD 20) set(CMAKE_CXX_STANDARD_REQUIRED ON) @@ -50,7 +50,7 @@ find_package(Qt6WaylandClientPrivate ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE) endif() -find_package(Wayland 1.15 COMPONENTS Client) +find_package(Wayland 1.24 COMPONENTS Client) set_package_properties(Wayland PROPERTIES TYPE REQUIRED ) @@ -63,14 +63,14 @@ find_package(EGL) set_package_properties(EGL PROPERTIES TYPE REQUIRED) -find_package(PlasmaWaylandProtocols 1.19.0 CONFIG) +find_package(PlasmaWaylandProtocols 1.21.0 CONFIG) set_package_properties(PlasmaWaylandProtocols PROPERTIES TYPE REQUIRED) # adjusting CMAKE_C_FLAGS to get wayland protocols to compile set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu90") ecm_set_disabled_deprecation_versions( - QT 6.8.1 + QT 6.11.0 ) check_cxx_source_compiles(" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-6.6.5/src/client/CMakeLists.txt new/kwayland-6.7.0/src/client/CMakeLists.txt --- old/kwayland-6.6.5/src/client/CMakeLists.txt 2026-05-12 12:26:25.000000000 +0200 +++ new/kwayland-6.7.0/src/client/CMakeLists.txt 2026-06-11 11:33:07.000000000 +0200 @@ -61,7 +61,6 @@ IDENTIFIER KWAYLAND_CLIENT CATEGORY_NAME kde.plasma.wayland.client OLD_CATEGORY_NAMES kwayland-client kf.wayland.client - DEFAULT_SEVERITY Critical DESCRIPTION "KWayland Client Library" EXPORT KWAYLAND ) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-6.6.5/src/client/plasmavirtualdesktop.cpp new/kwayland-6.7.0/src/client/plasmavirtualdesktop.cpp --- old/kwayland-6.6.5/src/client/plasmavirtualdesktop.cpp 2026-05-12 12:26:25.000000000 +0200 +++ new/kwayland-6.7.0/src/client/plasmavirtualdesktop.cpp 2026-06-11 11:33:07.000000000 +0200 @@ -8,7 +8,10 @@ #include "wayland_pointer_p.h" #include <QDebug> +#include <QGuiApplication> #include <QMap> +#include <QHash> +#include <QScreen> #include <wayland-plasma-virtual-desktop-client-protocol.h> @@ -28,6 +31,7 @@ quint32 rows = 1; QList<PlasmaVirtualDesktop *> desktops; + QHash<QString, QString> currentDesktops; inline QList<PlasmaVirtualDesktop *>::const_iterator constFindDesktop(const QString &id); inline QList<PlasmaVirtualDesktop *>::iterator findDesktop(const QString &id); @@ -56,6 +60,7 @@ QString id; QString name; bool active = false; + quint32 position = 0; private: PlasmaVirtualDesktop *q; @@ -68,6 +73,8 @@ static void deactivatedCallback(void *data, org_kde_plasma_virtual_desktop *org_kde_plasma_virtual_desktop); static void doneCallback(void *data, org_kde_plasma_virtual_desktop *org_kde_plasma_virtual_desktop); static void removedCallback(void *data, org_kde_plasma_virtual_desktop *org_kde_plasma_virtual_desktop); + static void positionCallback(void *data, org_kde_plasma_virtual_desktop *org_kde_plasma_virtual_desktop, uint32_t index); + static void outputEnteredCallback(void *data, org_kde_plasma_virtual_desktop *org_kde_plasma_virtual_desktop, const char *output_name); static const org_kde_plasma_virtual_desktop_listener s_listener; }; @@ -104,6 +111,9 @@ p->desktops.insert(position, vd); // TODO: emit a lot of desktopMoved? + connect(vd, &PlasmaVirtualDesktop::outputEntered, p->q, [p, vd](const QString &outputName) { + p->currentDesktops[outputName] = vd->id(); + }); Q_EMIT p->q->desktopCreated(stringId, position); } @@ -163,6 +173,9 @@ Q_ASSERT(!plasmavirtualdesktopmanagement); plasmavirtualdesktopmanagement.setup(arg); org_kde_plasma_virtual_desktop_management_add_listener(plasmavirtualdesktopmanagement, &s_listener, this); + connect(qGuiApp, &QGuiApplication::screenRemoved, q, [this](QScreen *screen) { + currentDesktops.remove(screen->name()); + }); } PlasmaVirtualDesktopManagement::~PlasmaVirtualDesktopManagement() @@ -264,8 +277,18 @@ return d->rows; } +PlasmaVirtualDesktop *PlasmaVirtualDesktopManagement::currentDesktopByOutputName(const QString &outputName) const +{ + auto it = d->constFindDesktop(d->currentDesktops.value(outputName)); + if (it != d->desktops.constEnd()) { + return *it; + } + + return nullptr; +} + const org_kde_plasma_virtual_desktop_listener PlasmaVirtualDesktop::Private::s_listener = - {idCallback, nameCallback, activatedCallback, deactivatedCallback, doneCallback, removedCallback}; + {idCallback, nameCallback, activatedCallback, deactivatedCallback, doneCallback, removedCallback, positionCallback, outputEnteredCallback}; void PlasmaVirtualDesktop::Private::idCallback(void *data, org_kde_plasma_virtual_desktop *org_kde_plasma_virtual_desktop, const char *id) { @@ -311,6 +334,21 @@ Q_EMIT p->q->removed(); } +void PlasmaVirtualDesktop::Private::positionCallback(void *data, org_kde_plasma_virtual_desktop *org_kde_plasma_virtual_desktop, uint32_t index) +{ + auto p = reinterpret_cast<PlasmaVirtualDesktop::Private *>(data); + Q_ASSERT(p->plasmavirtualdesktop == org_kde_plasma_virtual_desktop); + p->position = index; + Q_EMIT p->q->positionChanged(index); +} + +void PlasmaVirtualDesktop::Private::outputEnteredCallback(void *data, org_kde_plasma_virtual_desktop *org_kde_plasma_virtual_desktop, const char *output_name) +{ + auto p = reinterpret_cast<PlasmaVirtualDesktop::Private *>(data); + Q_ASSERT(p->plasmavirtualdesktop == org_kde_plasma_virtual_desktop); + Q_EMIT p->q->outputEntered(QString::fromUtf8(output_name)); +} + PlasmaVirtualDesktop::Private::Private(PlasmaVirtualDesktop *q) : q(q) { @@ -371,6 +409,12 @@ org_kde_plasma_virtual_desktop_request_activate(d->plasmavirtualdesktop); } +void PlasmaVirtualDesktop::requestEnterOutput(const QString &outputName) +{ + Q_ASSERT(isValid()); + org_kde_plasma_virtual_desktop_request_enter_output(d->plasmavirtualdesktop, outputName.toUtf8().constData()); +} + QString PlasmaVirtualDesktop::id() const { return d->id; @@ -386,6 +430,11 @@ return d->active; } +quint32 PlasmaVirtualDesktop::position() const +{ + return d->position; +} + } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-6.6.5/src/client/plasmavirtualdesktop.h new/kwayland-6.7.0/src/client/plasmavirtualdesktop.h --- old/kwayland-6.6.5/src/client/plasmavirtualdesktop.h 2026-05-12 12:26:25.000000000 +0200 +++ new/kwayland-6.7.0/src/client/plasmavirtualdesktop.h 2026-06-11 11:33:07.000000000 +0200 @@ -134,6 +134,12 @@ */ quint32 rows() const; + /** + * @returns The currently active desktop on an output identified by @p outputName. + * @since 6.7 + */ + PlasmaVirtualDesktop *currentDesktopByOutputName(const QString &outputName) const; + operator org_kde_plasma_virtual_desktop_management *(); operator org_kde_plasma_virtual_desktop_management *() const; @@ -220,6 +226,14 @@ void requestActivate(); /** + * Requests this desktop to be activated on output given by @p outputName. + * The server may or may not decide to consent to the request. + * The server may activate the desktop on other outputs as well. + * @since 6.7 + */ + void requestEnterOutput(const QString &outputName); + + /** * @returns The unique id of this desktop. The format of the id is decided by the compositor */ QString id() const; @@ -237,6 +251,14 @@ */ bool isActive() const; + /** + * The position of the virtual desktop in the desktop list. The virtual + * desktop position is in the [0, N - 1] range, where N is the number of + * virtual desktops. + * @since 6.7 + */ + quint32 position() const; + operator org_kde_plasma_virtual_desktop *(); operator org_kde_plasma_virtual_desktop *() const; @@ -253,6 +275,17 @@ void deactivated(); /** + * @since 6.7 + */ + void positionChanged(quint32 position); + + /** + * Emitted when this desktop becomes active on the output corresponding to @p outputName. + * @since 6.7 + */ + void outputEntered(const QString &outputName); + + /** * This event is sent after all other properties has been * sent after binding to the desktop manager object and after any * other property changes done after that. This allows diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-6.6.5/src/client/registry.cpp new/kwayland-6.7.0/src/client/registry.cpp --- old/kwayland-6.6.5/src/client/registry.cpp 2026-05-12 12:26:25.000000000 +0200 +++ new/kwayland-6.7.0/src/client/registry.cpp 2026-06-11 11:33:07.000000000 +0200 @@ -148,7 +148,7 @@ &Registry::plasmaShellRemoved }}, {Registry::Interface::PlasmaVirtualDesktopManagement, { - 2, + 4, QByteArrayLiteral("org_kde_plasma_virtual_desktop_management"), &org_kde_plasma_virtual_desktop_management_interface, &Registry::plasmaVirtualDesktopManagementAnnounced, @@ -338,6 +338,7 @@ WaylandPointer<wl_registry, wl_registry_destroy> registry; static const struct wl_callback_listener s_callbackListener; WaylandPointer<wl_callback, wl_callback_destroy> callback; + WaylandPointer<wl_fixes, wl_fixes_destroy> fixes; EventQueue *queue = nullptr; private: @@ -382,8 +383,12 @@ void Registry::release() { + if (d->fixes && d->registry) { + wl_fixes_destroy_registry(d->fixes, d->registry); + } d->registry.release(); d->callback.release(); + d->fixes.release(); } void Registry::destroy() @@ -391,6 +396,7 @@ Q_EMIT registryDestroyed(); d->registry.destroy(); d->callback.destroy(); + d->fixes.destroy(); } void Registry::create(wl_display *display) @@ -429,6 +435,9 @@ if (d->callback) { d->queue->addProxy(d->callback); } + if (d->fixes) { + d->queue->addProxy(d->fixes); + } } EventQueue *Registry::eventQueue() @@ -486,6 +495,13 @@ void Registry::Private::handleAnnounce(uint32_t name, const char *interface, uint32_t version) { Interface i = nameToInterface(interface); + if (qstrcmp(interface, wl_fixes_interface.name) == 0) { + fixes.setup(reinterpret_cast<wl_fixes *>(wl_registry_bind(registry, name, &wl_fixes_interface, 1))); + if (queue) { + queue->addProxy(fixes); + } + } + if (i == Interface::Unknown) { qCDebug(KWAYLAND_CLIENT) << "Unknown interface announced: " << interface << "/" << name << "/" << version; } else {
