Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kwayland for openSUSE:Factory checked in at 2021-09-16 23:14:15 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kwayland (Old) and /work/SRC/openSUSE:Factory/.kwayland.new.1899 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwayland" Thu Sep 16 23:14:15 2021 rev:90 rq:919220 version:5.86.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kwayland/kwayland.changes 2021-08-16 10:12:24.087041097 +0200 +++ /work/SRC/openSUSE:Factory/.kwayland.new.1899/kwayland.changes 2021-09-16 23:16:18.651900127 +0200 @@ -1,0 +2,19 @@ +Wed Sep 15 08:24:20 UTC 2021 - Christophe Giboudeaux <[email protected]> + +- Drop the unneeded baselibs.conf. + +------------------------------------------------------------------- +Mon Sep 6 06:22:21 UTC 2021 - Christophe Giboudeaux <[email protected]> + +- Update to 5.86.0 + * New feature release + * For more details please see: + * https://kde.org/announcements/frameworks/5/5.86.0 +- Changes since 5.85.0: + * Implement set_frost in contrast protocol + * Implement org_kde_plasma_window_management::send_to_output + * Decouple activation feedback from plasma window management global + * Port QStringRef (deprected) to QStringView + * plasma-window-management: Support new activation concepts + +------------------------------------------------------------------- Old: ---- baselibs.conf kwayland-5.85.0.tar.xz kwayland-5.85.0.tar.xz.sig New: ---- kwayland-5.86.0.tar.xz kwayland-5.86.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kwayland.spec ++++++ --- /var/tmp/diff_new_pack.7siI5I/_old 2021-09-16 23:16:19.251900748 +0200 +++ /var/tmp/diff_new_pack.7siI5I/_new 2021-09-16 23:16:19.251900748 +0200 @@ -16,7 +16,7 @@ # -%define _tar_path 5.85 +%define _tar_path 5.86 # 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.85.0 +Version: 5.86.0 Release: 0 Summary: KDE Wayland library License: LGPL-2.1-or-later @@ -35,7 +35,6 @@ Source1: https://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-%{version}.tar.xz.sig Source2: frameworks.keyring %endif -Source99: baselibs.conf BuildRequires: extra-cmake-modules >= %{_kf5_bugfix_version} BuildRequires: fdupes BuildRequires: kf5-filesystem ++++++ kwayland-5.85.0.tar.xz -> kwayland-5.86.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/.git-blame-ignore-revs new/kwayland-5.86.0/.git-blame-ignore-revs --- old/kwayland-5.85.0/.git-blame-ignore-revs 1970-01-01 01:00:00.000000000 +0100 +++ new/kwayland-5.86.0/.git-blame-ignore-revs 2021-09-04 17:49:23.000000000 +0200 @@ -0,0 +1,2 @@ +#clang-tidy +00587c7b9f245a11130307178323bd1af6a4ac69 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/CMakeLists.txt new/kwayland-5.86.0/CMakeLists.txt --- old/kwayland-5.85.0/CMakeLists.txt 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/CMakeLists.txt 2021-09-04 17:49:23.000000000 +0200 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.16) -set(KF_VERSION "5.85.0") # handled by release scripts +set(KF_VERSION "5.86.0") # handled by release scripts project(KWayland VERSION ${KF_VERSION}) # ECM setup include(FeatureSummary) -find_package(ECM 5.85.0 NO_MODULE) +find_package(ECM 5.86.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) @@ -30,7 +30,7 @@ SOVERSION 5) # Dependencies -set(REQUIRED_QT_VERSION 5.15.0) +set(REQUIRED_QT_VERSION 5.15.2) find_package(Qt5Gui ${REQUIRED_QT_VERSION} REQUIRED NO_MODULE COMPONENTS Private) find_package(Qt5 ${REQUIRED_QT_VERSION} CONFIG REQUIRED Concurrent WaylandClient) @@ -55,7 +55,7 @@ include(KDEGitCommitHooks) include(CheckIncludeFile) -find_package(PlasmaWaylandProtocols 1.3.0 CONFIG) +find_package(PlasmaWaylandProtocols 1.4.0 CONFIG) set_package_properties(PlasmaWaylandProtocols PROPERTIES TYPE REQUIRED) check_include_file("linux/input.h" HAVE_LINUX_INPUT_H) @@ -65,7 +65,7 @@ # adjusting CMAKE_C_FLAGS to get wayland protocols to compile set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu90") -add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f00) +add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x050f02) # Subdirectories ecm_install_po_files_as_qm(po) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/client/contrast.cpp new/kwayland-5.86.0/src/client/contrast.cpp --- old/kwayland-5.85.0/src/client/contrast.cpp 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/client/contrast.cpp 2021-09-04 17:49:23.000000000 +0200 @@ -161,6 +161,19 @@ org_kde_kwin_contrast_set_saturation(d->contrast, wl_fixed_from_double(saturation)); } +void Contrast::setFrost(QColor frost) +{ + if (org_kde_kwin_contrast_get_version(d->contrast) < ORG_KDE_KWIN_CONTRAST_SET_FROST_SINCE_VERSION) { + return; + } + + if (frost.isValid()) { + org_kde_kwin_contrast_set_frost(d->contrast, frost.red(), frost.green(), frost.blue(), frost.alpha()); + } else { + org_kde_kwin_contrast_unset_frost(d->contrast); + } +} + Contrast::operator org_kde_kwin_contrast *() { return d->contrast; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/client/contrast.h new/kwayland-5.86.0/src/client/contrast.h --- old/kwayland-5.85.0/src/client/contrast.h 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/client/contrast.h 2021-09-04 17:49:23.000000000 +0200 @@ -7,9 +7,12 @@ #ifndef KWAYLAND_CONTRAST_H #define KWAYLAND_CONTRAST_H +#include <optional> + #include <QObject> #include <QPoint> #include <QSize> +#include <QColor> #include <KWayland/Client/kwaylandclient_export.h> @@ -175,6 +178,8 @@ void setIntensity(qreal intensity); void setSaturation(qreal saturation); + void setFrost(QColor frost); + operator org_kde_kwin_contrast *(); operator org_kde_kwin_contrast *() const; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/client/outputconfiguration.cpp new/kwayland-5.86.0/src/client/outputconfiguration.cpp --- old/kwayland-5.85.0/src/client/outputconfiguration.cpp 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/client/outputconfiguration.cpp 2021-09-04 17:49:23.000000000 +0200 @@ -164,7 +164,9 @@ { org_kde_kwin_outputdevice *od = outputdevice->output(); - wl_array wlRed, wlGreen, wlBlue; + wl_array wlRed; + wl_array wlGreen; + wl_array wlBlue; auto fillArray = [](QVector<quint16> &origin, wl_array *dest) { wl_array_init(dest); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/client/plasmawindowmanagement.cpp new/kwayland-5.86.0/src/client/plasmawindowmanagement.cpp --- old/kwayland-5.85.0/src/client/plasmawindowmanagement.cpp 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/client/plasmawindowmanagement.cpp 2021-09-04 17:49:23.000000000 +0200 @@ -1168,5 +1168,158 @@ return d->plasmaActivities; } +void PlasmaWindow::sendToOutput(KWayland::Client::Output *output) const +{ + if (org_kde_plasma_window_get_version(d->window) >= ORG_KDE_PLASMA_WINDOW_SEND_TO_OUTPUT_SINCE_VERSION) { + org_kde_plasma_window_send_to_output(d->window, *output); + } +} + +class Q_DECL_HIDDEN PlasmaActivationFeedback::Private +{ +public: + Private(PlasmaActivationFeedback *q); + WaylandPointer<org_kde_plasma_activation_feedback, org_kde_plasma_activation_feedback_destroy> feedback; + EventQueue *queue = nullptr; + + void setup(org_kde_plasma_activation_feedback *feedback); + +private: + static void activationCallback(void *data, struct org_kde_plasma_activation_feedback *feedback, struct org_kde_plasma_activation *id); + + static struct org_kde_plasma_activation_feedback_listener s_listener; + PlasmaActivationFeedback *q; +}; + +PlasmaActivationFeedback::Private::Private(PlasmaActivationFeedback *q) + : q(q) +{ +} + +org_kde_plasma_activation_feedback_listener PlasmaActivationFeedback::Private::s_listener = { + activationCallback, +}; + +void PlasmaActivationFeedback::Private::activationCallback(void *data, org_kde_plasma_activation_feedback *interface, struct org_kde_plasma_activation *id) +{ + auto feedbackPrivate = reinterpret_cast<PlasmaActivationFeedback::Private *>(data); + Q_ASSERT(feedbackPrivate->feedback == interface); + auto activation = new PlasmaActivation(feedbackPrivate->q, id); + Q_EMIT feedbackPrivate->q->activation(activation); +} + +void PlasmaActivationFeedback::Private::setup(org_kde_plasma_activation_feedback *m) +{ + Q_ASSERT(!feedback); + Q_ASSERT(m); + feedback.setup(m); + org_kde_plasma_activation_feedback_add_listener(m, &s_listener, this); +} + +PlasmaActivationFeedback::PlasmaActivationFeedback(QObject *parent) + : QObject(parent) + , d(new Private(this)) +{ +} + +PlasmaActivationFeedback::~PlasmaActivationFeedback() +{ + release(); +} + +void PlasmaActivationFeedback::destroy() +{ + if (!d->feedback) { + return; + } + Q_EMIT interfaceAboutToBeDestroyed(); + d->feedback.destroy(); +} + +void PlasmaActivationFeedback::release() +{ + if (!d->feedback) { + return; + } + Q_EMIT interfaceAboutToBeReleased(); + d->feedback.release(); +} + +void PlasmaActivationFeedback::setup(org_kde_plasma_activation_feedback *wm) +{ + d->setup(wm); +} + +void PlasmaActivationFeedback::setEventQueue(EventQueue *queue) +{ + d->queue = queue; +} + +EventQueue *PlasmaActivationFeedback::eventQueue() +{ + return d->queue; +} + +bool PlasmaActivationFeedback::isValid() const +{ + return d->feedback.isValid(); +} + +PlasmaActivationFeedback::operator org_kde_plasma_activation_feedback *() +{ + return d->feedback; +} + +PlasmaActivationFeedback::operator org_kde_plasma_activation_feedback *() const +{ + return d->feedback; +} + +class Q_DECL_HIDDEN PlasmaActivation::Private +{ +public: + Private(org_kde_plasma_activation *activation, PlasmaActivation *q) + : activation(activation) + { + org_kde_plasma_activation_add_listener(activation, &s_listener, q); + } + + static PlasmaActivation *cast(void *data) + { + return reinterpret_cast<PlasmaActivation *>(data); + } + WaylandPointer<org_kde_plasma_activation, org_kde_plasma_activation_destroy> activation; + + static org_kde_plasma_activation_listener s_listener; + static void app_idCallback(void *data, struct org_kde_plasma_activation *org_kde_plasma_activation, const char *app_id); + static void finishedCallback(void *data, struct org_kde_plasma_activation *org_kde_plasma_activation); +}; + +org_kde_plasma_activation_listener PlasmaActivation::Private::s_listener = { + app_idCallback, + finishedCallback, +}; + +void PlasmaActivation::Private::app_idCallback(void *data, org_kde_plasma_activation *activation, const char *appId) +{ + Q_UNUSED(activation) + Q_EMIT cast(data)->applicationId(QString::fromUtf8(appId)); +} + +void PlasmaActivation::Private::finishedCallback(void *data, org_kde_plasma_activation *) +{ + auto q = cast(data); + Q_EMIT q->finished(); + Q_EMIT q->deleteLater(); + q->d->activation.release(); +} + +PlasmaActivation::PlasmaActivation(PlasmaActivationFeedback *parent, org_kde_plasma_activation *activation) + : QObject(parent) + , d(new PlasmaActivation::Private(activation, this)) +{ +} + +PlasmaActivation::~PlasmaActivation() = default; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/client/plasmawindowmanagement.h new/kwayland-5.86.0/src/client/plasmawindowmanagement.h --- old/kwayland-5.85.0/src/client/plasmawindowmanagement.h 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/client/plasmawindowmanagement.h 2021-09-04 17:49:23.000000000 +0200 @@ -12,6 +12,8 @@ #include <KWayland/Client/kwaylandclient_export.h> +struct org_kde_plasma_activation_feedback; +struct org_kde_plasma_activation; struct org_kde_plasma_window_management; struct org_kde_plasma_window; @@ -20,6 +22,8 @@ namespace Client { class EventQueue; +class Output; +class PlasmaActivationFeedback; class PlasmaWindow; class PlasmaWindowModel; class Surface; @@ -224,8 +228,10 @@ **/ void stackingOrderUuidsChanged(); -private: +public: class Private; + +private: QScopedPointer<Private> d; }; @@ -596,6 +602,13 @@ */ QString applicationMenuObjectPath() const; + /** + * Sends the current window to @p output + * + * @since 5.86 + */ + void sendToOutput(KWayland::Client::Output *output) const; + Q_SIGNALS: /** * The window title changed. @@ -782,11 +795,132 @@ private: friend class PlasmaWindowManagement; - explicit PlasmaWindow(PlasmaWindowManagement *parent, org_kde_plasma_window *dataOffer, quint32 internalId, const char *uuid); + explicit PlasmaWindow(PlasmaWindowManagement *parent, org_kde_plasma_window *activation, quint32 internalId, const char *uuid); + class Private; + QScopedPointer<Private> d; +}; + +/** + * @since 5.86 + */ +class KWAYLANDCLIENT_EXPORT PlasmaActivation : public QObject +{ + Q_OBJECT +public: + virtual ~PlasmaActivation(); + +Q_SIGNALS: + /** + * Informs about which application this activation is representing + * + * The @p appId can be used to infer how to decorate this activation. + */ + void applicationId(const QString &appId); + + /** + * Notifies that the activation is done with. + * + * It might happen either because it's over or because it timed out. + */ + void finished(); + +private: + friend class PlasmaActivationFeedback; + explicit PlasmaActivation(PlasmaActivationFeedback *parent, org_kde_plasma_activation *activation); class Private; QScopedPointer<Private> d; }; +/** + * @since 5.86 + */ +class KWAYLANDCLIENT_EXPORT PlasmaActivationFeedback : public QObject +{ + Q_OBJECT + +public: + explicit PlasmaActivationFeedback(QObject *parent = nullptr); + ~PlasmaActivationFeedback() override; + + /** + * @returns @c true if managing a org_kde_plasma_activation_feedback. + **/ + bool isValid() const; + + /** + * Releases the org_kde_plasma_activation_feedback interface. + * After the interface has been released the PlasmaActivationFeedback instance is no + * longer valid and can be setup with another org_kde_plasma_activation_feedback interface. + * + * Right before the interface is released the signal interfaceAboutToBeReleased is emitted. + * @see interfaceAboutToBeReleased + **/ + void release(); + + /** + * Destroys the data held by this PlasmaActivationFeedback. + * This method is supposed to be used when the connection to the Wayland + * server goes away. Once the connection becomes invalid, it's not + * possible to call release anymore as that calls into the Wayland + * connection and the call would fail. This method cleans up the data, so + * that the instance can be deleted or set up to a new org_kde_plasma_activation_feedback interface + * once there is a new connection available. + * + * This method is automatically invoked when the Registry which created this + * PlasmaActivationFeedback gets destroyed. + * + * Right before the data is destroyed, the signal interfaceAboutToBeDestroyed is emitted. + * + * @see release + * @see interfaceAboutToBeDestroyed + **/ + void destroy(); + + /** + * Setup this PlasmaActivationFeedback to manage the @p manager. + * When using Registry::createPlasmaActivationFeedback there is no need to call this + * method. + **/ + void setup(org_kde_plasma_activation_feedback *manager); + + /** + * Sets the @p queue to use for creating a PlasmaActivationFeedback. + **/ + void setEventQueue(EventQueue *queue); + + /** + * @returns The event queue to use for creating a PlasmaActivationFeedback. + **/ + EventQueue *eventQueue(); + + operator org_kde_plasma_activation_feedback *(); + operator org_kde_plasma_activation_feedback *() const; + +Q_SIGNALS: + /** + * This signal is emitted right before the interface is released. + **/ + void interfaceAboutToBeReleased(); + + /** + * This signal is emitted right before the data is destroyed. + **/ + void interfaceAboutToBeDestroyed(); + + /** + * The corresponding global for this interface on the Registry got removed. + * + * This signal gets only emitted if the Compositor got created by + * Registry::createPlasmaActivationFeedback + **/ + void removed(); + + void activation(KWayland::Client::PlasmaActivation *activation); + +private: + class Private; + QScopedPointer<Private> d; +}; } } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/client/registry.cpp new/kwayland-5.86.0/src/client/registry.cpp --- old/kwayland-5.85.0/src/client/registry.cpp 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/client/registry.cpp 2021-09-04 17:49:23.000000000 +0200 @@ -172,7 +172,7 @@ &Registry::plasmaVirtualDesktopManagementRemoved }}, {Registry::Interface::PlasmaWindowManagement, { - 14, + 15, QByteArrayLiteral("org_kde_plasma_window_management"), &org_kde_plasma_window_management_interface, &Registry::plasmaWindowManagementAnnounced, @@ -228,7 +228,7 @@ &Registry::blurRemoved }}, {Registry::Interface::Contrast, { - 1, + 2, QByteArrayLiteral("org_kde_kwin_contrast_manager"), &org_kde_kwin_contrast_manager_interface, &Registry::contrastAnnounced, @@ -373,7 +373,14 @@ &org_kde_kwin_keystate_interface, &Registry::keystateAnnounced, &Registry::keystateRemoved - }} + }}, + {Registry::Interface::PlasmaActivationFeedback, { + 1, + QByteArrayLiteral("org_kde_plasma_activation_feedback"), + &org_kde_plasma_activation_feedback_interface, + &Registry::plasmaActivationFeedbackAnnounced, + &Registry::plasmaActivationFeedbackRemoved + }}, }; // clang-format on @@ -655,6 +662,7 @@ BIND(FullscreenShell, _wl_fullscreen_shell) BIND(DataDeviceManager, wl_data_device_manager) BIND(PlasmaShell, org_kde_plasma_shell) +BIND(PlasmaActivationFeedback, org_kde_plasma_activation_feedback) BIND(PlasmaVirtualDesktopManagement, org_kde_plasma_virtual_desktop_management) BIND(PlasmaWindowManagement, org_kde_plasma_window_management) BIND(Idle, org_kde_kwin_idle) @@ -721,6 +729,7 @@ CREATE(Output) CREATE(DataDeviceManager) CREATE(PlasmaShell) +CREATE(PlasmaActivationFeedback) CREATE(PlasmaVirtualDesktopManagement) CREATE(PlasmaWindowManagement) CREATE(Idle) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/client/registry.h new/kwayland-5.86.0/src/client/registry.h --- old/kwayland-5.85.0/src/client/registry.h 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/client/registry.h 2021-09-04 17:49:23.000000000 +0200 @@ -36,6 +36,7 @@ struct org_kde_kwin_blur_manager; struct org_kde_kwin_contrast_manager; struct org_kde_kwin_slide_manager; +struct org_kde_plasma_activation_feedback; struct org_kde_plasma_shell; struct org_kde_plasma_virtual_desktop_management; struct org_kde_plasma_window_management; @@ -72,6 +73,7 @@ class Keystate; class RemoteAccessManager; class Output; +class PlasmaActivationFeedback; class PlasmaShell; class PlasmaVirtualDesktopManagement; class PlasmaWindowManagement; @@ -173,6 +175,7 @@ XdgShellStable, ///< refers to xdg_wm_base @since 5.48 XdgDecorationUnstableV1, ///< refers to zxdg_decoration_manager_v1 @since 5.54 Keystate, ///< refers to org_kwin_keystate @since 5.60 + PlasmaActivationFeedback, ///< Refers to org_kde_plasma_activation_feedback interface, @since 5.83 }; explicit Registry(QObject *parent = nullptr); virtual ~Registry(); @@ -388,6 +391,16 @@ **/ org_kde_plasma_shell *bindPlasmaShell(uint32_t name, uint32_t version) const; /** + * Binds the org_kde_plasma_activation_feedback with @p name and @p version. + * If the @p name does not exist or is not for the Plasma activation manager interface, + * @c null will be returned. + * + * Prefer using createPlasmaActivationFeedback instead. + * @see createPlasmaActivationFeedback + * @since 5.83 + **/ + org_kde_plasma_activation_feedback *bindPlasmaActivationFeedback(uint32_t name, uint32_t version) const; + /** * Binds the org_kde_plasma_virtual_desktop_management with @p name and @p version. * If the @p name does not exist or is not for the Plasma Virtual desktop interface, * @c null will be returned. @@ -840,6 +853,22 @@ **/ PlasmaShell *createPlasmaShell(quint32 name, quint32 version, QObject *parent = nullptr); /** + * Creates a PlasmaActivationFeedback and sets it up to manage the interface identified by + * @p name and @p version. + * + * Note: in case @p name is invalid or isn't for the org_kde_plasma_activation_feedback interface, + * the returned PlasmaActivationFeedback will not be valid. Therefore it's recommended to call + * isValid on the created instance. + * + * @param name The name of the org_kde_plasma_activation_feedback interface to bind + * @param version The version or the org_kde_plasma_activation_feedback interface to use + * @param parent The parent for PlasmaActivationFeedback + * + * @returns The created PlasmaActivationFeedback. + * @since 5.83 + **/ + PlasmaActivationFeedback *createPlasmaActivationFeedback(quint32 name, quint32 version, QObject *parent = nullptr); + /** * Creates a PlasmaVirtualDesktopManagement and sets it up to manage the interface identified by * @p name and @p version. * @@ -1321,6 +1350,13 @@ **/ void plasmaShellAnnounced(quint32 name, quint32 version); /** + * Emitted whenever a org_kde_plasma_activation_feedback interface gets announced. + * @param name The name for the announced interface + * @param version The maximum supported version of the announced interface + * @since 5.83 + **/ + void plasmaActivationFeedbackAnnounced(quint32 name, quint32 version); + /** * Emitted whenever a org_kde_plasma_virtual_desktop_management interface gets announced. * @param name The name for the announced interface * @param version The maximum supported version of the announced interface @@ -1585,6 +1621,12 @@ **/ void plasmaShellRemoved(quint32 name); /** + * Emitted whenever a org_kde_plasma_activation_feedback interface gets removed. + * @param name The name for the removed interface + * @since 5.83 + **/ + void plasmaActivationFeedbackRemoved(quint32 name); + /** * Emitted whenever a org_kde_plasma_virtual_desktop_management interface gets removed. * @param name The name for the removed interface * @since 5.52 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/client/textinput_v0.cpp new/kwayland-5.86.0/src/client/textinput_v0.cpp --- old/kwayland-5.85.0/src/client/textinput_v0.cpp 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/client/textinput_v0.cpp 2021-09-04 17:49:23.000000000 +0200 @@ -283,10 +283,12 @@ void TextInputUnstableV0::Private::setSurroundingText(const QString &text, quint32 cursor, quint32 anchor) { + const QStringView strView(text); + wl_text_input_set_surrounding_text(textinputunstablev0, text.toUtf8().constData(), - text.leftRef(cursor).toUtf8().length(), - text.leftRef(anchor).toUtf8().length()); + strView.left(cursor).toUtf8().length(), + strView.left(anchor).toUtf8().length()); } void TextInputUnstableV0::Private::reset() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/client/textinput_v2.cpp new/kwayland-5.86.0/src/client/textinput_v2.cpp --- old/kwayland-5.85.0/src/client/textinput_v2.cpp 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/client/textinput_v2.cpp 2021-09-04 17:49:23.000000000 +0200 @@ -318,10 +318,12 @@ void TextInputUnstableV2::Private::setSurroundingText(const QString &text, quint32 cursor, quint32 anchor) { + const QStringView strView(text); + zwp_text_input_v2_set_surrounding_text(textinputunstablev2, text.toUtf8().constData(), - text.leftRef(cursor).toUtf8().length(), - text.leftRef(anchor).toUtf8().length()); + strView.left(cursor).toUtf8().length(), + strView.left(anchor).toUtf8().length()); } void TextInputUnstableV2::Private::reset() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/server/buffer_interface.cpp new/kwayland-5.86.0/src/server/buffer_interface.cpp --- old/kwayland-5.85.0/src/server/buffer_interface.cpp 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/server/buffer_interface.cpp 2021-09-04 17:49:23.000000000 +0200 @@ -166,7 +166,8 @@ resolved = true; } if (eglQueryWaylandBufferWL) { - EGLint width, height; + EGLint width; + EGLint height; bool valid = false; valid = eglQueryWaylandBufferWL(eglDisplay, buffer, EGL_WIDTH, &width); valid = valid && eglQueryWaylandBufferWL(eglDisplay, buffer, EGL_HEIGHT, &height); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/server/keystate_interface.cpp new/kwayland-5.86.0/src/server/keystate_interface.cpp --- old/kwayland-5.85.0/src/server/keystate_interface.cpp 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/server/keystate_interface.cpp 2021-09-04 17:49:23.000000000 +0200 @@ -47,8 +47,9 @@ { auto s = reinterpret_cast<KeyStateInterface::Private *>(wl_resource_get_user_data(resource)); - for (int i = 0; i < s->m_keyStates.count(); ++i) + for (int i = 0; i < s->m_keyStates.count(); ++i) { org_kde_kwin_keystate_send_stateChanged(resource, i, s->m_keyStates[i]); + } } static const quint32 s_version; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/server/linuxdmabuf_v1_interface.cpp new/kwayland-5.86.0/src/server/linuxdmabuf_v1_interface.cpp --- old/kwayland-5.85.0/src/server/linuxdmabuf_v1_interface.cpp 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/server/linuxdmabuf_v1_interface.cpp 2021-09-04 17:49:23.000000000 +0200 @@ -234,8 +234,9 @@ // Check for holes in the dmabufs set (e.g. [0, 1, 3]) for (uint32_t i = 0; i < m_planeCount; i++) { - if (m_planes[i].fd != -1) + if (m_planes[i].fd != -1) { continue; + } wl_resource_post_error(m_resource, ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_INCOMPLETE, "no dmabuf has been added for plane %i", i); return; @@ -261,8 +262,9 @@ // Don't report an error as it might be caused by the kernel not supporting seeking on dmabuf off_t size = ::lseek(plane.fd, 0, SEEK_END); - if (size == -1) + if (size == -1) { continue; + } if (plane.offset >= size) { wl_resource_post_error(m_resource, ZWP_LINUX_BUFFER_PARAMS_V1_ERROR_OUT_OF_BOUNDS, "invalid offset %i for plane %i", plane.offset, i); @@ -286,8 +288,9 @@ // ----------------- QVector<V1Iface::Plane> planes; planes.reserve(m_planeCount); - for (uint32_t i = 0; i < m_planeCount; i++) + for (uint32_t i = 0; i < m_planeCount; i++) { planes << m_planes[i]; + } LinuxDmabufUnstableV1Buffer *buffer = m_dmabufInterface->impl->importBuffer(planes, format, size, (V1Iface::Flags)flags); if (buffer) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/server/outputdevice_interface.cpp new/kwayland-5.86.0/src/server/outputdevice_interface.cpp --- old/kwayland-5.85.0/src/server/outputdevice_interface.cpp 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/server/outputdevice_interface.cpp 2021-09-04 17:49:23.000000000 +0200 @@ -407,7 +407,9 @@ return; } - wl_array wlRed, wlGreen, wlBlue; + wl_array wlRed; + wl_array wlGreen; + wl_array wlBlue; auto fillArray = [](const QVector<quint16> &origin, wl_array *dest) { wl_array_init(dest); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/server/tablet_interface.cpp new/kwayland-5.86.0/src/server/tablet_interface.cpp --- old/kwayland-5.85.0/src/server/tablet_interface.cpp 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/server/tablet_interface.cpp 2021-09-04 17:49:23.000000000 +0200 @@ -102,8 +102,9 @@ m_serial = serial; m_surface = surface; m_hotspot = hotspot; - if (diff) + if (diff) { Q_EMIT q->changed(); + } } TabletCursor *const q; @@ -161,8 +162,9 @@ wl_resource *targetResource() { - if (!m_surface) + if (!m_surface) { return nullptr; + } ClientConnection *client = m_surface->client(); const Resource *r = resourceMap().value(*client); @@ -181,16 +183,18 @@ void zwp_tablet_tool_v2_bind_resource(QtWaylandServer::zwp_tablet_tool_v2::Resource *resource) override { TabletCursor *&c = m_cursors[resource->handle]; - if (!c) + if (!c) { c = new TabletCursor; + } } void zwp_tablet_tool_v2_set_cursor(Resource *resource, uint32_t serial, struct ::wl_resource *_surface, int32_t hotspot_x, int32_t hotspot_y) override { TabletCursor *c = m_cursors[resource->handle]; c->d->update(serial, SurfaceInterface::get(_surface), {hotspot_x, hotspot_y}); - if (resource->handle == targetResource()) + if (resource->handle == targetResource()) { q->cursorChanged(c); + } } void zwp_tablet_tool_v2_destroy_resource(Resource *resource) override @@ -227,8 +231,9 @@ void TabletToolInterface::setCurrentSurface(SurfaceInterface *surface) { - if (d->m_surface == surface) + if (d->m_surface == surface) { return; + } TabletInterface *const lastTablet = d->m_lastTablet; if (d->m_surface && d->resourceMap().contains(*d->m_surface->client())) { @@ -449,8 +454,9 @@ TabletToolInterface *TabletSeatInterface::toolByHardwareId(quint64 hardwareId) const { for (TabletToolInterface *tool : d->m_tools) { - if (tool->d->hardwareId() == hardwareId) + if (tool->d->hardwareId() == hardwareId) { return tool; + } } return nullptr; } @@ -458,8 +464,9 @@ TabletToolInterface *TabletSeatInterface::toolByHardwareSerial(quint64 hardwareSerial) const { for (TabletToolInterface *tool : d->m_tools) { - if (tool->d->hardwareSerial() == hardwareSerial) + if (tool->d->hardwareSerial() == hardwareSerial) { return tool; + } } return nullptr; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/tools/generator.cpp new/kwayland-5.86.0/src/tools/generator.cpp --- old/kwayland-5.85.0/src/tools/generator.cpp 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/tools/generator.cpp 2021-09-04 17:49:23.000000000 +0200 @@ -67,7 +67,7 @@ Argument::~Argument() = default; -Argument::Type Argument::parseType(const QStringRef &type) +Argument::Type Argument::parseType(const QStringView type) { if (type.compare(QLatin1String("new_id")) == 0) { return Type::NewId; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.85.0/src/tools/generator.h new/kwayland-5.86.0/src/tools/generator.h --- old/kwayland-5.85.0/src/tools/generator.h 2021-07-23 09:27:04.000000000 +0200 +++ new/kwayland-5.86.0/src/tools/generator.h 2021-09-04 17:49:23.000000000 +0200 @@ -58,7 +58,7 @@ QString typeAsServerWl() const; private: - Type parseType(const QStringRef &type); + Type parseType(const QStringView type); QString m_name; Type m_type = Type::Unknown; bool m_allowNull = false;
