Hello community, here is the log from the commit of package kwayland for openSUSE:Factory checked in at 2020-08-12 12:25:29 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kwayland (Old) and /work/SRC/openSUSE:Factory/.kwayland.new.3399 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwayland" Wed Aug 12 12:25:29 2020 rev:77 rq:825111 version:5.73.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kwayland/kwayland.changes 2020-07-14 07:56:05.545168502 +0200 +++ /work/SRC/openSUSE:Factory/.kwayland.new.3399/kwayland.changes 2020-08-12 12:29:19.572177437 +0200 @@ -1,0 +2,12 @@ +Sun Aug 2 07:13:50 UTC 2020 - Christophe Giboudeaux <[email protected]> + +- Update to 5.73.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/kde-frameworks-5.73.0 +- Changes since 5.72.0: + * plasma-window-management: Adapt to changes in the protocol + * PlasmaWindowManagement: adopt changes in the protocol + * Use KF-standardized Qt logging categories + +------------------------------------------------------------------- Old: ---- kwayland-5.72.0.tar.xz kwayland-5.72.0.tar.xz.sig New: ---- kwayland-5.73.0.tar.xz kwayland-5.73.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kwayland.spec ++++++ --- /var/tmp/diff_new_pack.puAC1K/_old 2020-08-12 12:29:20.044177690 +0200 +++ /var/tmp/diff_new_pack.puAC1K/_new 2020-08-12 12:29:20.048177692 +0200 @@ -16,7 +16,7 @@ # -%define _tar_path 5.72 +%define _tar_path 5.73 # Full KF5 version (e.g. 5.33.0) %{!?_kf5_version: %global _kf5_version %{version}} # Last major and minor KF5 version (e.g. 5.33) @@ -24,7 +24,7 @@ # Only needed for the package signature condition %bcond_without lang Name: kwayland -Version: 5.72.0 +Version: 5.73.0 Release: 0 Summary: KDE Wayland library License: LGPL-2.1-or-later @@ -41,6 +41,7 @@ BuildRequires: kf5-filesystem BuildRequires: libQt5Gui-private-headers-devel >= 5.12.0 BuildRequires: pkgconfig +BuildRequires: cmake(PlasmaWaylandProtocols) BuildRequires: cmake(Qt5Concurrent) >= 5.12.0 BuildRequires: cmake(Qt5Gui) >= 5.12.0 BuildRequires: cmake(Qt5Test) >= 5.12.0 @@ -84,6 +85,7 @@ %files %license LICENSES/* %{_kf5_debugdir}/*.categories +%{_kf5_debugdir}/*.renamecategories %{_kf5_libdir}/libKF5WaylandClient.so.* %{_kf5_libdir}/libKF5WaylandServer.so.* ++++++ kwayland-5.72.0.tar.xz -> kwayland-5.73.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.72.0/CMakeLists.txt new/kwayland-5.73.0/CMakeLists.txt --- old/kwayland-5.72.0/CMakeLists.txt 2020-07-04 11:57:25.000000000 +0200 +++ new/kwayland-5.73.0/CMakeLists.txt 2020-08-01 19:12:20.000000000 +0200 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.5) -set(KF5_VERSION "5.72.0") # handled by release scripts +set(KF5_VERSION "5.73.0") # handled by release scripts project(KWayland VERSION ${KF5_VERSION}) # ECM setup include(FeatureSummary) -find_package(ECM 5.72.0 NO_MODULE) +find_package(ECM 5.73.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) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${CMAKE_SOURCE_DIR}/cmake/Modules) @@ -53,6 +53,9 @@ include(KDECMakeSettings) include(CheckIncludeFile) +find_package(PlasmaWaylandProtocols 1.1 CONFIG) +set_package_properties(PlasmaWaylandProtocols PROPERTIES TYPE REQUIRED) + check_include_file("linux/input.h" HAVE_LINUX_INPUT_H) configure_file(config-kwayland.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config-kwayland.h) include_directories(${CMAKE_CURRENT_BINARY_DIR}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.72.0/src/client/CMakeLists.txt new/kwayland-5.73.0/src/client/CMakeLists.txt --- old/kwayland-5.72.0/src/client/CMakeLists.txt 2020-07-04 11:57:25.000000000 +0200 +++ new/kwayland-5.73.0/src/client/CMakeLists.txt 2020-08-01 19:12:20.000000000 +0200 @@ -67,7 +67,8 @@ ecm_qt_declare_logging_category(CLIENT_LIB_SRCS HEADER logging.h IDENTIFIER KWAYLAND_CLIENT - CATEGORY_NAME kwayland-client + CATEGORY_NAME kf.wayland.client + OLD_CATEGORY_NAMES kwayland-client DEFAULT_SEVERITY Critical DESCRIPTION "KWayland Client Library" EXPORT KWAYLAND @@ -99,7 +100,7 @@ ) ecm_add_wayland_client_protocol(CLIENT_LIB_SRCS - PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/plasma-window-management.xml + PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/plasma-window-management.xml BASENAME plasma-window-management ) @@ -247,7 +248,7 @@ GROUP_BASE_NAME KF VERSION ${KF5_VERSION} DEPRECATED_BASE_VERSION 0 - DEPRECATION_VERSIONS 5.49 5.50 5.52 5.53 + DEPRECATION_VERSIONS 5.49 5.50 5.52 5.53 5.73 ) # TODO: add support for EXCLUDE_DEPRECATED_BEFORE_AND_AT to all KWayland libs # needs fixing of undeprecated API being still implemented using own deprecated API diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.72.0/src/client/plasmawindowmanagement.cpp new/kwayland-5.73.0/src/client/plasmawindowmanagement.cpp --- old/kwayland-5.72.0/src/client/plasmawindowmanagement.cpp 2020-07-04 11:57:25.000000000 +0200 +++ new/kwayland-5.73.0/src/client/plasmawindowmanagement.cpp 2020-08-01 19:12:20.000000000 +0200 @@ -35,16 +35,20 @@ QList<PlasmaWindow*> windows; PlasmaWindow *activeWindow = nullptr; QVector<quint32> stackingOrder; + QVector<QByteArray> stackingOrderUuids; void setup(org_kde_plasma_window_management *wm); private: static void showDesktopCallback(void *data, org_kde_plasma_window_management *org_kde_plasma_window_management, uint32_t state); static void windowCallback(void *data, org_kde_plasma_window_management *org_kde_plasma_window_management, uint32_t id); + static void windowWithUuidCallback(void *data, org_kde_plasma_window_management *org_kde_plasma_window_management, uint32_t id, const char* uuid); static void stackingOrderCallback(void *data, org_kde_plasma_window_management *org_kde_plasma_window_management, wl_array *ids); + static void stackingOrderUuidsCallback(void *data, org_kde_plasma_window_management *org_kde_plasma_window_management, const char *uuids); void setShowDesktop(bool set); - void windowCreated(org_kde_plasma_window *id, quint32 internalId); + void windowCreated(org_kde_plasma_window *id, quint32 internalId, const char *uuid); void setStackingOrder(const QVector<quint32> &ids); + void setStackingOrder(const QVector<QByteArray> &uuids); static struct org_kde_plasma_window_management_listener s_listener; PlasmaWindowManagement *q; @@ -53,9 +57,10 @@ class Q_DECL_HIDDEN PlasmaWindow::Private { public: - Private(org_kde_plasma_window *window, quint32 internalId, PlasmaWindow *q); + Private(org_kde_plasma_window *window, quint32 internalId, const char *uuid, PlasmaWindow *q); WaylandPointer<org_kde_plasma_window, org_kde_plasma_window_destroy> window; - quint32 internalId; + quint32 internalId; ///< @deprecated + QByteArray uuid; QString title; QString appId; quint32 desktop = 0; @@ -143,7 +148,9 @@ org_kde_plasma_window_management_listener PlasmaWindowManagement::Private::s_listener = { showDesktopCallback, windowCallback, - stackingOrderCallback + stackingOrderCallback, + stackingOrderUuidsCallback, + windowWithUuidCallback, }; void PlasmaWindowManagement::Private::setup(org_kde_plasma_window_management *windowManagement) @@ -189,19 +196,36 @@ timer->setInterval(0); QObject::connect(timer, &QTimer::timeout, wm->q, [timer, wm, id] { - wm->windowCreated(org_kde_plasma_window_management_get_window(wm->wm, id), id); + wm->windowCreated(org_kde_plasma_window_management_get_window(wm->wm, id), id, "unavailable"); timer->deleteLater(); }, Qt::QueuedConnection ); timer->start(); } -void PlasmaWindowManagement::Private::windowCreated(org_kde_plasma_window *id, quint32 internalId) +void PlasmaWindowManagement::Private::windowWithUuidCallback(void *data, org_kde_plasma_window_management *interface, uint32_t id, const char *_uuid) +{ + QByteArray uuid(_uuid); + auto wm = reinterpret_cast<PlasmaWindowManagement::Private*>(data); + Q_ASSERT(wm->wm == interface); + QTimer *timer = new QTimer(); + timer->setSingleShot(true); + timer->setInterval(0); + QObject::connect(timer, &QTimer::timeout, wm->q, + [timer, wm, id, uuid] { + wm->windowCreated(org_kde_plasma_window_management_get_window_by_uuid(wm->wm, uuid), id, uuid); + timer->deleteLater(); + }, Qt::QueuedConnection + ); + timer->start(); +} + +void PlasmaWindowManagement::Private::windowCreated(org_kde_plasma_window *id, quint32 internalId, const char *uuid) { if (queue) { queue->addProxy(id); } - PlasmaWindow *window = new PlasmaWindow(q, id, internalId); + PlasmaWindow *window = new PlasmaWindow(q, id, internalId, uuid); window->d->wm = q; windows << window; QObject::connect(window, &QObject::destroyed, q, @@ -249,6 +273,13 @@ wm->setStackingOrder(destination); } +void PlasmaWindowManagement::Private::stackingOrderUuidsCallback(void *data, org_kde_plasma_window_management *interface, const char *uuids) +{ + auto wm = reinterpret_cast<PlasmaWindowManagement::Private*>(data); + Q_ASSERT(wm->wm == interface); + wm->setStackingOrder(QByteArray(uuids).split(';').toVector()); +} + void PlasmaWindowManagement::Private::setStackingOrder(const QVector<quint32> &ids) { if (stackingOrder == ids) { @@ -258,6 +289,15 @@ emit q->stackingOrderChanged(); } +void PlasmaWindowManagement::Private::setStackingOrder(const QVector<QByteArray> &uuids) +{ + if (stackingOrderUuids == uuids) { + return; + } + stackingOrderUuids = uuids; + emit q->stackingOrderUuidsChanged(); +} + PlasmaWindowManagement::PlasmaWindowManagement(QObject *parent) : QObject(parent) , d(new Private(this)) @@ -357,6 +397,11 @@ return d->stackingOrder; } +QVector<QByteArray> PlasmaWindowManagement::stackingOrderUuids() const +{ + return d->stackingOrderUuids; +} + org_kde_plasma_window_listener PlasmaWindow::Private::s_listener = { titleChangedCallback, appIdChangedCallback, @@ -788,17 +833,19 @@ emit q->virtualDesktopChangeableChanged(); } -PlasmaWindow::Private::Private(org_kde_plasma_window *w, quint32 internalId, PlasmaWindow *q) +PlasmaWindow::Private::Private(org_kde_plasma_window *w, quint32 internalId, const char *uuid, PlasmaWindow *q) : internalId(internalId) + , uuid(uuid) , q(q) { + Q_ASSERT(!this->uuid.isEmpty()); window.setup(w); org_kde_plasma_window_add_listener(w, &s_listener, this); } -PlasmaWindow::PlasmaWindow(PlasmaWindowManagement *parent, org_kde_plasma_window *window, quint32 internalId) +PlasmaWindow::PlasmaWindow(PlasmaWindowManagement *parent, org_kde_plasma_window *window, quint32 internalId, const char *uuid) : QObject(parent) - , d(new Private(window, internalId, this)) + , d(new Private(window, internalId, uuid, this)) { } @@ -1075,6 +1122,11 @@ return d->internalId; } +QByteArray PlasmaWindow::uuid() const +{ + return d->uuid; +} + QPointer<PlasmaWindow> PlasmaWindow::parentWindow() const { return d->parentWindow; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.72.0/src/client/plasmawindowmanagement.h new/kwayland-5.73.0/src/client/plasmawindowmanagement.h --- old/kwayland-5.72.0/src/client/plasmawindowmanagement.h 2020-07-04 11:57:25.000000000 +0200 +++ new/kwayland-5.73.0/src/client/plasmawindowmanagement.h 2020-08-01 19:12:20.000000000 +0200 @@ -156,10 +156,22 @@ **/ PlasmaWindowModel *createWindowModel(); +#if KWAYLANDCLIENT_ENABLE_DEPRECATED_SINCE(5, 73) /** * @returns windows stacking order + * + * @deprecated Since 5.73, use stackingOrderUuids() */ + KWAYLANDCLIENT_DEPRECATED_VERSION(5, 73, "Use PlasmaWindow::stackingOrderUuids()") QVector<quint32> stackingOrder() const; +#endif + + /** + * @returns windows stacking order + * + * @since 5.73 + */ + QVector<QByteArray> stackingOrderUuids() const; Q_SIGNALS: /** @@ -197,11 +209,21 @@ **/ void removed(); +#if KWAYLANDCLIENT_ENABLE_DEPRECATED_SINCE(5, 73) /** * The stacking order changed * @since 5.70 + * @deprecated Since 5.73, use stackingOrderUuidsChanged() **/ + KWAYLANDCLIENT_DEPRECATED_VERSION(5, 73, "Use PlasmaWindow::stackingOrderUuidsChanged()") void stackingOrderChanged(); +#endif + + /** + * The stacking order uuids changed + * @since 5.73 + **/ + void stackingOrderUuidsChanged(); private: class Private; @@ -460,12 +482,25 @@ */ void requestToggleShaded(); +#if KWAYLANDCLIENT_ENABLE_DEPRECATED_SINCE(5, 73) /** * An internal window identifier. * This is not a global window identifier. * This identifier does not correspond to QWindow::winId in any way. - **/ + * + * @deprecated Since 5.73, use uuid(const QString &) instead + */ + KWAYLANDCLIENT_DEPRECATED_VERSION(5, 73, "Use PlasmaWindow::uuid(const QString &)") quint32 internalId() const; +#endif + + /** + * A unique identifier for the window + * + * @see QUuid + * @since 5.73 + */ + QByteArray uuid() const; /** * The parent window of this PlasmaWindow. @@ -703,7 +738,7 @@ private: friend class PlasmaWindowManagement; - explicit PlasmaWindow(PlasmaWindowManagement *parent, org_kde_plasma_window *dataOffer, quint32 internalId); + explicit PlasmaWindow(PlasmaWindowManagement *parent, org_kde_plasma_window *dataOffer, quint32 internalId, const char *uuid); class Private; QScopedPointer<Private> d; }; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.72.0/src/client/plasmawindowmodel.cpp new/kwayland-5.73.0/src/client/plasmawindowmodel.cpp --- old/kwayland-5.72.0/src/client/plasmawindowmodel.cpp 2020-07-04 11:57:25.000000000 +0200 +++ new/kwayland-5.73.0/src/client/plasmawindowmodel.cpp 2020-08-01 19:12:20.000000000 +0200 @@ -269,6 +269,8 @@ return window->geometry(); } else if (role == VirtualDesktops) { return window->plasmaVirtualDesktops(); + } else if (role == Uuid) { + return window->uuid(); } return QVariant(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.72.0/src/client/plasmawindowmodel.h new/kwayland-5.73.0/src/client/plasmawindowmodel.h --- old/kwayland-5.72.0/src/client/plasmawindowmodel.h 2020-07-04 11:57:25.000000000 +0200 +++ new/kwayland-5.73.0/src/client/plasmawindowmodel.h 2020-08-01 19:12:20.000000000 +0200 @@ -106,7 +106,11 @@ /** * @since 5.53 */ - VirtualDesktops + VirtualDesktops, + /** + * @since 5.73 + */ + Uuid, }; Q_ENUM(AdditionalRoles) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.72.0/src/client/protocols/plasma-window-management.xml new/kwayland-5.73.0/src/client/protocols/plasma-window-management.xml --- old/kwayland-5.72.0/src/client/protocols/plasma-window-management.xml 2020-07-04 11:57:25.000000000 +0200 +++ new/kwayland-5.73.0/src/client/protocols/plasma-window-management.xml 1970-01-01 01:00:00.000000000 +0100 @@ -1,320 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<protocol name="plasma_window_management"> - <copyright><![CDATA[ - SPDX-FileCopyrightText: 2013-2014 Pier Luigi Fiorini - - SPDX-License-Identifier: LGPL-2.1-or-later - ]]></copyright> - - <interface name="org_kde_plasma_window_management" version="11"> - <description summary="application windows management"> - This interface manages application windows. - It provides requests to show and hide the desktop and emits - an event every time a window is created so that the client can - use it to manage the window. - - Only one client can bind this interface at a time. - </description> - - <enum name="state"> - <entry name="active" value="1 << 0"/> - <entry name="minimized" value="1 << 1"/> - <entry name="maximized" value="1 << 2"/> - <entry name="fullscreen" value="1 << 3"/> - <entry name="keep_above" value="1 << 4"/> - <entry name="keep_below" value="1 << 5"/> - <entry name="on_all_desktops" value="1 << 6"/> - <entry name="demands_attention" value="1 << 7"/> - <entry name="closeable" value="1 << 8"/> - <entry name="minimizable" value="1 << 9"/> - <entry name="maximizable" value="1 << 10"/> - <entry name="fullscreenable" value="1 << 11"/> - <entry name="skiptaskbar" value="1 << 12" since="2"/> - <entry name="shadeable" value="1 << 13" since="3"/> - <entry name="shaded" value="1 << 14" since="3"/> - <entry name="movable" value="1 << 15" since="3"/> - <entry name="resizable" value="1 << 16" since="3"/> - <entry name="virtual_desktop_changeable" value="1 << 17" since="3"/> - <entry name="skipswitcher" value="1 << 18" since="9"/> - </enum> - - <enum name="show_desktop"> - <entry name="disabled" value="0"/> - <entry name="enabled" value="1"/> - </enum> - - <request name="show_desktop"> - <description summary="show/hide the desktop"> - Tell the compositor to show/hide the desktop. - </description> - <arg name="state" type="uint" summary="requested state"/> - </request> - - <request name="get_window"> - <arg name="id" type="new_id" interface="org_kde_plasma_window"/> - <arg name="internal_window_id" type="uint" summary="The internal window id of the window to create"/> - </request> - - <event name="show_desktop_changed"> - <description summary="notify the client when the show desktop mode is entered/left"> - This event will be sent whenever the show desktop mode changes. E.g. when it is entered - or left. - - On binding the interface the current state is sent. - </description> - <arg name="state" type="uint" summary="new state"/> - </event> - - <event name="window"> - <description summary="notify the client that a window was mapped"> - This event will be sent immediately after a window is mapped. - </description> - <arg name="id" type="uint" summary="internal window Id"/> - </event> - - <event name="stacking_order_changed" since="11"> - <description summary="notify the client when stacking order changed"> - This event will be sent when stacking order changed and on bind - </description> - <arg name="ids" type="array" summary="internal windows id array"/> - </event> - </interface> - - <interface name="org_kde_plasma_window" version="11"> - <description summary="interface to control application windows"> - Manages and control an application window. - - Only one client can bind this interface at a time. - </description> - - <request name="set_state"> - <description summary="set window state"> - Set window state. - - Values for state argument are described by org_kde_plasma_window_management.state - and can be used together in a bitfield. The flags bitfield describes which flags are - supposed to be set, the state bitfield the value for the set flags - </description> - <arg name="flags" type="uint" summary="bitfield of set state flags"/> - <arg name="state" type="uint" summary="bitfield of state flags"/> - </request> - - <request name="set_virtual_desktop"> - <description summary="map window on a virtual desktop"> - Deprecated: use enter_virtual_desktop - Maps the window to a different virtual desktop. - - To show the window on all virtual desktops, call the - org_kde_plasma_window.set_state request and specify a on_all_desktops - state in the bitfield. - </description> - <arg name="number" type="uint" summary="zero based virtual desktop number"/> - </request> - - <request name="set_minimized_geometry"> - <description summary="set the geometry for a taskbar entry"> - Sets the geometry of the taskbar entry for this window. - The geometry is relative to a panel in particular. - </description> - <arg name="panel" type="object" interface="wl_surface"/> - <arg name="x" type="uint"/> - <arg name="y" type="uint"/> - <arg name="width" type="uint"/> - <arg name="height" type="uint"/> - </request> - - <request name="unset_minimized_geometry"> - <description summary="set the geometry for a taskbar entry"> - Remove the task geometry information for a particular panel. - </description> - <arg name="panel" type="object" interface="wl_surface"/> - </request> - - <!-- - <request name="highlight"> - <description summary="highlight the window"> - Tell the compositor to highlight this window. - </description> - </request> - --> - - <request name="close"> - <description summary="close window"> - Close this window. - </description> - </request> - - <request name="request_move" since="3"> - <description summary="request move"> - Request an interactive move for this window. - </description> - </request> - - <request name="request_resize" since="3"> - <description summary="request resize"> - Request an interactive resize for this window. - </description> - </request> - - <request name="destroy" type="destructor" since="4"> - <description summary="remove resource for the org_kde_plasma_window"> - Removes the resource bound for this org_kde_plasma_window. - </description> - </request> - - <request name="get_icon" since="7"> - <description summary="Requests to get the window icon"> - The compositor will write the window icon into the provided file descriptor. - The data is a serialized QIcon with QDataStream. - </description> - <arg name="fd" type="fd" summary="file descriptor for the icon"/> - </request> - - <event name="title_changed"> - <description summary="window title has been changed"> - This event will be sent as soon as the window title is changed. - </description> - <arg name="title" type="string" summary="window title"/> - </event> - - <event name="app_id_changed"> - <description summary="application identifier has been changed"> - This event will be sent as soon as the application - identifier is changed. - </description> - <arg name="app_id" type="string"/> - </event> - - <event name="state_changed"> - <description summary="window state has been changed"> - This event will be sent as soon as the window state changes. - - Values for state argument are described by org_kde_plasma_window_management.state. - </description> - <arg name="flags" type="uint" summary="bitfield of state flags"/> - </event> - - <event name="virtual_desktop_changed"> - <description summary="window was moved to another workspace"> - DEPRECATED: use virtual_desktop_entered and virtual_desktop_left instead - This event will be sent when a window is moved to another - virtual desktop. - - It is not sent if it becomes visible on all virtual desktops though. - </description> - <arg name="number" type="int" summary="zero based virtual desktop number"/> - </event> - - <event name="themed_icon_name_changed"> - <description summary="window's icon name changed"> - This event will be sent whenever the themed icon name changes. May be null. - </description> - <arg name="name" type="string" summary="the new themed icon name"/> - </event> - - <event name="unmapped"> - <description summary="window's surface was unmapped"> - This event will be sent immediately after the window is closed - and its surface is unmapped. - </description> - </event> - - <event name="initial_state" since="4"> - <description summary="All initial known state is submitted"> - This event will be sent immediately after all initial state been sent to the client. - If the Plasma window is already unmapped, the unmapped event will be sent before the - initial_state event. - </description> - </event> - - <event name="parent_window" since="5"> - <description summary="The parent window changed"> - This event will be sent whenever the parent window of this org_kde_plasma_window changes. - The passed parent is another org_kde_plasma_window and this org_kde_plasma_window is a - transient window to the parent window. If the parent argument is null, this - org_kde_plasma_window does not have a parent window. - </description> - <arg name="parent" type="object" interface="org_kde_plasma_window" summary="The parent window" allow-null="true"/> - </event> - - <event name="geometry" since="6"> - <description summary="The geometry of this window in absolute coordinates"> - This event will be sent whenever the window geometry of this org_kde_plasma_window changes. - The coordinates are in absolute coordinates of the windowing system. - </description> - <arg name="x" type="int" summary="x position of the org_kde_plasma_window"/> - <arg name="y" type="int" summary="y position of the org_kde_plasma_window"/> - <arg name="width" type="uint" summary="width of the org_kde_plasma_window"/> - <arg name="height" type="uint" summary="height of the org_kde_plasma_window"/> - </event> - - <event name="icon_changed" since="7"> - <description summary="The icon of the window changed"> - This event will be sent whenever the icon of the window changes, but there is no themed - icon name. Common examples are Xwayland windows which have a pixmap based icon. - - The client can request the icon using get_icon. - </description> - </event> - - <event name="pid_changed"> - <description summary="process id of application owning the window has changed"> - This event will be sent when the compositor has set the process id this window belongs to. - This should be set once before the initial_state is sent. - </description> - <arg name="pid" type="uint" summary="process id"/> - </event> - - - - - <request name="request_enter_virtual_desktop" since="8"> - <description summary="map window on a virtual desktop"> - Make the window enter a virtual desktop. A window can enter more - than one virtual desktop. if the id is empty or invalid, no action will be performed. - </description> - <arg name="id" type="string" summary="desktop id"/> - </request> - - <request name="request_enter_new_virtual_desktop" since="8"> - <description summary="map window on a virtual desktop">RFC: do this with an empty id to request_enter_virtual_desktop? - Make the window enter a new virtual desktop. If the server consents the request, - it will create a new virtual desktop and assign the window to it. - </description> - </request> - - <request name="request_leave_virtual_desktop" since="8"> - <description summary="remove a window from a virtual desktop"> - Make the window exit a virtual desktop. If it exits all desktops it will be considered on all of them. - </description> - <arg name="id" type="string" summary="desktop id"/> - </request> - - <event name="virtual_desktop_entered" since="8"> - <description summary="the window entered a new virtual desktop"> - This event will be sent when the window has entered a new virtual desktop. The window can be on more than one desktop, or none: then is considered on all of them. - </description> - <arg name="id" type="string" summary="desktop id"/> - </event> - - <event name="virtual_desktop_left" since="8"> - <description summary="the window left a virtual desktop"> - This event will be sent when the window left a virtual desktop. If the window leaves all desktops, it can be considered on all. - If the window gets manually added on all desktops, the server has to send virtual_desktop_left for every previous desktop it was in for the window to be really considered on all desktops. - </description> - <arg name="is" type="string" summary="desktop id"/> - </event> - - <!-- Version 10 additions --> - - <event name="application_menu" since="10"> - <description summary="notify the client that the current appmenu changed"> - This event will be sent after the application menu - for the window has changed. - </description> - <arg name="service_name" type="string" /> - <arg name="object_path" type="string" /> - </event> - - </interface> -</protocol> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.72.0/src/client/registry.cpp new/kwayland-5.73.0/src/client/registry.cpp --- old/kwayland-5.72.0/src/client/registry.cpp 2020-07-04 11:57:25.000000000 +0200 +++ new/kwayland-5.73.0/src/client/registry.cpp 2020-08-01 19:12:20.000000000 +0200 @@ -171,7 +171,7 @@ &Registry::plasmaVirtualDesktopManagementRemoved }}, {Registry::Interface::PlasmaWindowManagement, { - 11, + 13, QByteArrayLiteral("org_kde_plasma_window_management"), &org_kde_plasma_window_management_interface, &Registry::plasmaWindowManagementAnnounced, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.72.0/src/server/CMakeLists.txt new/kwayland-5.73.0/src/server/CMakeLists.txt --- old/kwayland-5.72.0/src/server/CMakeLists.txt 2020-07-04 11:57:25.000000000 +0200 +++ new/kwayland-5.73.0/src/server/CMakeLists.txt 2020-08-01 19:12:20.000000000 +0200 @@ -69,7 +69,8 @@ ecm_qt_declare_logging_category(SERVER_LIB_SRCS HEADER logging.h IDENTIFIER KWAYLAND_SERVER - CATEGORY_NAME kwayland-server + CATEGORY_NAME kf.wayland.server + OLD_CATEGORY_NAMES kwayland-server DEFAULT_SEVERITY Critical DESCRIPTION "KWayland Server Library" EXPORT KWAYLAND @@ -96,7 +97,7 @@ ) ecm_add_wayland_server_protocol(SERVER_LIB_SRCS - PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/plasma-window-management.xml + PROTOCOL ${PLASMA_WAYLAND_PROTOCOLS_DIR}/plasma-window-management.xml BASENAME plasma-window-management ) @@ -307,7 +308,7 @@ GROUP_BASE_NAME KF VERSION ${KF5_VERSION} DEPRECATED_BASE_VERSION 0 - DEPRECATION_VERSIONS 5.5 5.28 5.50 5.52 5.69 + DEPRECATION_VERSIONS 5.5 5.28 5.50 5.52 5.69 5.73 ) # TODO: add support for EXCLUDE_DEPRECATED_BEFORE_AND_AT to all KWayland libs # needs fixing of undeprecated API being still implemented using own deprecated API diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.72.0/src/server/plasmawindowmanagement_interface.cpp new/kwayland-5.73.0/src/server/plasmawindowmanagement_interface.cpp --- old/kwayland-5.72.0/src/server/plasmawindowmanagement_interface.cpp 2020-07-04 11:57:25.000000000 +0200 +++ new/kwayland-5.73.0/src/server/plasmawindowmanagement_interface.cpp 2020-08-01 19:12:20.000000000 +0200 @@ -44,6 +44,7 @@ static void unbind(wl_resource *resource); static void showDesktopCallback(wl_client *client, wl_resource *resource, uint32_t state); static void getWindowCallback(wl_client *client, wl_resource *resource, uint32_t id, uint32_t internalWindowId); + static void getWindowByUuidCallback(wl_client *client, wl_resource *resource, uint32_t id, const char* uuid); void bind(wl_client *client, uint32_t version, uint32_t id) override; void sendShowingDesktopState(wl_resource *r); @@ -127,7 +128,8 @@ #ifndef K_DOXYGEN const struct org_kde_plasma_window_management_interface PlasmaWindowManagementInterface::Private::s_interface = { showDesktopCallback, - getWindowCallback + getWindowCallback, + getWindowByUuidCallback }; #endif @@ -195,6 +197,19 @@ emit reinterpret_cast<Private*>(wl_resource_get_user_data(resource))->q->requestChangeShowingDesktop(s); } +void PlasmaWindowManagementInterface::Private::getWindowByUuidCallback(wl_client *client, wl_resource *resource, uint32_t id, const char* uuid) +{ + Q_UNUSED(client); + Q_UNUSED(uuid); + qCritical() << "window_by_uuid is unsupported, port to KWaylandServer::PlasmaWindowManagementInterface"; + + auto p = reinterpret_cast<Private*>(wl_resource_get_user_data(resource)); + PlasmaWindowInterface *window = new PlasmaWindowInterface(p->q, p->q); + window->d->unmapped = true; + window->d->createResource(resource, id); + return; +} + void PlasmaWindowManagementInterface::Private::getWindowCallback(wl_client *client, wl_resource *resource, uint32_t id, uint32_t internalWindowId) { Q_UNUSED(client) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.72.0/src/server/plasmawindowmanagement_interface.h new/kwayland-5.73.0/src/server/plasmawindowmanagement_interface.h --- old/kwayland-5.72.0/src/server/plasmawindowmanagement_interface.h 2020-07-04 11:57:25.000000000 +0200 +++ new/kwayland-5.73.0/src/server/plasmawindowmanagement_interface.h 2020-08-01 19:12:20.000000000 +0200 @@ -6,9 +6,12 @@ #ifndef WAYLAND_SERVER_PLASMA_WINDOW_MANAGEMENT_INTERFACE_H #define WAYLAND_SERVER_PLASMA_WINDOW_MANAGEMENT_INTERFACE_H +#include <KWayland/Server/kwaylandserver_export.h> + +#if KWAYLANDSERVER_ENABLE_DEPRECATED_SINCE(5, 73) + #include <QObject> -#include <KWayland/Server/kwaylandserver_export.h> #include "global.h" #include "resource.h" @@ -26,12 +29,14 @@ class PlasmaVirtualDesktopManagementInterface; /** - * @todo Add documentation + * @deprecated 5.73 port to KWaylandServer in Plasma */ class KWAYLANDSERVER_EXPORT PlasmaWindowManagementInterface : public Global { Q_OBJECT public: + KWAYLANDSERVER_DEPRECATED_VERSION(5, 73, "Port to KWaylandServer") + PlasmaWindowManagementInterface() = default; virtual ~PlasmaWindowManagementInterface(); enum class ShowingDesktopState { Disabled, @@ -97,6 +102,8 @@ { Q_OBJECT public: + KWAYLANDSERVER_DEPRECATED_VERSION(5, 73, "Port to KWaylandServer") + PlasmaWindowInterface() = default; virtual ~PlasmaWindowInterface(); void setTitle(const QString &title); @@ -324,3 +331,4 @@ Q_DECLARE_METATYPE(KWayland::Server::PlasmaWindowManagementInterface::ShowingDesktopState) #endif +#endif
