Hello community, here is the log from the commit of package kwayland for openSUSE:Factory checked in at 2019-05-21 10:32:41 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kwayland (Old) and /work/SRC/openSUSE:Factory/.kwayland.new.5148 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwayland" Tue May 21 10:32:41 2019 rev:62 rq:703382 version:5.58.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kwayland/kwayland.changes 2019-04-19 21:24:37.039892043 +0200 +++ /work/SRC/openSUSE:Factory/.kwayland.new.5148/kwayland.changes 2019-05-21 10:32:42.727383377 +0200 @@ -1,0 +2,11 @@ +Wed May 15 18:16:18 UTC 2019 - lbeltr...@kde.org + +- Update to 5.58.0 + * New feature release + * For more details please see: + * https://www.kde.org/announcements/kde-frameworks-5.58.0.php +- Changes since 5.57.0: + * Add CriticalNotification window type to PlasmaShellSurface protocol + * Implement wl_eglstream_controller Server Interface + +------------------------------------------------------------------- Old: ---- kwayland-5.57.0.tar.xz New: ---- kwayland-5.58.0.tar.xz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kwayland.spec ++++++ --- /var/tmp/diff_new_pack.fHtH2Y/_old 2019-05-21 10:32:43.223383187 +0200 +++ /var/tmp/diff_new_pack.fHtH2Y/_new 2019-05-21 10:32:43.223383187 +0200 @@ -16,13 +16,13 @@ # -%define _tar_path 5.57 +%define _tar_path 5.58 # Full KF5 version (e.g. 5.33.0) %{!?_kf5_version: %global _kf5_version %{version}} # Last major and minor KF5 version (e.g. 5.33) %{!?_kf5_bugfix_version: %define _kf5_bugfix_version %(echo %{_kf5_version} | awk -F. '{print $1"."$2}')} Name: kwayland -Version: 5.57.0 +Version: 5.58.0 Release: 0 Summary: KDE Wayland library License: LGPL-2.1-or-later ++++++ kwayland-5.57.0.tar.xz -> kwayland-5.58.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/CMakeLists.txt new/kwayland-5.58.0/CMakeLists.txt --- old/kwayland-5.57.0/CMakeLists.txt 2019-04-07 09:20:51.000000000 +0200 +++ new/kwayland-5.58.0/CMakeLists.txt 2019-05-05 00:46:03.000000000 +0200 @@ -1,11 +1,11 @@ cmake_minimum_required(VERSION 3.5) -set(KF5_VERSION "5.57.0") # handled by release scripts +set(KF5_VERSION "5.58.0") # handled by release scripts project(KWayland VERSION ${KF5_VERSION}) # ECM setup include(FeatureSummary) -find_package(ECM 5.57.0 NO_MODULE) +find_package(ECM 5.58.0 NO_MODULE) set_package_properties(ECM PROPERTIES TYPE REQUIRED DESCRIPTION "Extra CMake Modules." URL "https://projects.kde.org/projects/kdesupport/extra-cmake-modules") feature_summary(WHAT REQUIRED_PACKAGES_NOT_FOUND FATAL_ON_MISSING_REQUIRED_PACKAGES) set(CMAKE_MODULE_PATH ${ECM_MODULE_PATH} ${ECM_KDE_MODULE_DIR}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/autotests/client/test_plasmashell.cpp new/kwayland-5.58.0/autotests/client/test_plasmashell.cpp --- old/kwayland-5.57.0/autotests/client/test_plasmashell.cpp 2019-04-07 09:20:51.000000000 +0200 +++ new/kwayland-5.58.0/autotests/client/test_plasmashell.cpp 2019-05-05 00:46:03.000000000 +0200 @@ -161,6 +161,7 @@ QTest::newRow("panel") << PlasmaShellSurface::Role::Panel << PlasmaShellSurfaceInterface::Role::Panel; QTest::newRow("notification") << PlasmaShellSurface::Role::Notification << PlasmaShellSurfaceInterface::Role::Notification; QTest::newRow("tooltip") << PlasmaShellSurface::Role::ToolTip << PlasmaShellSurfaceInterface::Role::ToolTip; + QTest::newRow("criticalnotification") << PlasmaShellSurface::Role::CriticalNotification << PlasmaShellSurfaceInterface::Role::CriticalNotification; } void TestPlasmaShell::testRole() diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/src/client/plasmashell.cpp new/kwayland-5.58.0/src/client/plasmashell.cpp --- old/kwayland-5.57.0/src/client/plasmashell.cpp 2019-04-07 09:20:51.000000000 +0200 +++ new/kwayland-5.58.0/src/client/plasmashell.cpp 2019-05-05 00:46:03.000000000 +0200 @@ -280,6 +280,14 @@ case Role::ToolTip: wlRole = ORG_KDE_PLASMA_SURFACE_ROLE_TOOLTIP; break; + case Role::CriticalNotification: + if (wl_proxy_get_version(d->surface) < ORG_KDE_PLASMA_SURFACE_ROLE_CRITICALNOTIFICATION_SINCE_VERSION) { + // Fall back to generic notification type if not supported + wlRole = ORG_KDE_PLASMA_SURFACE_ROLE_NOTIFICATION; + } else { + wlRole = ORG_KDE_PLASMA_SURFACE_ROLE_CRITICALNOTIFICATION; + } + break; default: Q_UNREACHABLE(); break; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/src/client/plasmashell.h new/kwayland-5.58.0/src/client/plasmashell.h --- old/kwayland-5.57.0/src/client/plasmashell.h 2019-04-07 09:20:51.000000000 +0200 +++ new/kwayland-5.58.0/src/client/plasmashell.h 2019-05-05 00:46:03.000000000 +0200 @@ -246,7 +246,8 @@ Panel, ///< The Surface represents a panel (dock), normally stacked above normal surfaces OnScreenDisplay, ///< The Surface represents an on screen display, like a volume changed notification Notification, ///< The Surface represents a notification @since 5.24 - ToolTip ///< The Surface represents a tooltip @since 5.24 + ToolTip, ///< The Surface represents a tooltip @since 5.24 + CriticalNotification, ///< The Surface represents a critical notification, like battery is running out @since 5.58 }; /** * Changes the requested Role to @p role. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/src/client/protocols/plasma-shell.xml new/kwayland-5.58.0/src/client/protocols/plasma-shell.xml --- old/kwayland-5.57.0/src/client/protocols/plasma-shell.xml 2019-04-07 09:20:51.000000000 +0200 +++ new/kwayland-5.58.0/src/client/protocols/plasma-shell.xml 2019-05-05 00:46:03.000000000 +0200 @@ -17,7 +17,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. ]]></copyright> - <interface name="org_kde_plasma_shell" version="5"> + <interface name="org_kde_plasma_shell" version="6"> <description summary="create shell windows and helpers"> This interface is used by KF5 powered Wayland shells to communicate with the compositor and can only be bound one time. @@ -130,7 +130,7 @@ --> </interface> - <interface name="org_kde_plasma_surface" version="5"> + <interface name="org_kde_plasma_surface" version="6"> <description summary="metadata interface"> An interface that may be implemented by a wl_surface, for implementations that provide the shell user interface. @@ -190,6 +190,7 @@ <entry name="onscreendisplay" value="3"/> <entry name="notification" value="4"/> <entry name="tooltip" value="5"/> + <entry name="criticalnotification" value="6" since="6"/> <!-- <entry name="splash" value="1"/> <entry name="dashboard" value="3"/> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/src/client/protocols/wayland-eglstream-controller.xml new/kwayland-5.58.0/src/client/protocols/wayland-eglstream-controller.xml --- old/kwayland-5.57.0/src/client/protocols/wayland-eglstream-controller.xml 1970-01-01 01:00:00.000000000 +0100 +++ new/kwayland-5.58.0/src/client/protocols/wayland-eglstream-controller.xml 2019-05-05 00:46:03.000000000 +0200 @@ -0,0 +1,87 @@ +<?xml version="1.0" encoding="UTF-8"?> +<protocol name="wl_eglstream_controller"> + <copyright> + Copyright (c) 2017-2018, NVIDIA CORPORATION. All rights reserved. + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL + THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. + </copyright> + <interface name="wl_eglstream_controller" version="2"> + <!-- Present mode types. This enum defines what the present mode given + to a attach_eglstream_consumer_attribs request represents --> + <enum name="present_mode"> + <description summary="Stream present mode"> + - dont_care: Using this enum will tell the server to make its own + decisions regarding present mode. + + - fifo: Tells the server to use a fifo present mode. The decision to + use fifo synchronous is left up to the server. + + - mailbox: Tells the server to use a mailbox present mode. + </description> + <entry name="dont_care" value="0" summary="Let the Server decide present mode"/> + <entry name="fifo" value="1" summary="Use a fifo present mode"/> + <entry name="mailbox" value="2" summary="Use a mailbox mode"/> + </enum> + + <enum name="attrib"> + <description summary="Stream consumer attachment attributes"> + - present_mode: Must be one of wl_eglstream_controller_present_mode. Tells the + server the desired present mode that should be used. + + - fifo_length: Only valid when the present_mode attrib is provided and its + value is specified as fifo. Tells the server the desired fifo + length to be used when the desired present_mode is fifo. + </description> + <entry name="present_mode" value="0" summary="Tells the server the desired present mode"/> + <entry name="fifo_length" value="1" summary="Tells the server the desired fifo length when the desired presenation_mode is fifo."/> + </enum> + + <request name="attach_eglstream_consumer" since="1"> + <description summary="Create server stream and attach consumer"> + Creates the corresponding server side EGLStream from the given wl_buffer + and attaches a consumer to it. + </description> + <arg name="wl_surface" type="object" interface="wl_surface" + summary="wl_surface corresponds to the client surface associated with + newly created eglstream"/> + <arg name="wl_resource" type="object" interface="wl_buffer" + summary="wl_resource corresponding to an EGLStream"/> + </request> + + <request name="attach_eglstream_consumer_attribs" since="2"> + <description summary="Create server stream and attach consumer using attributes"> + Creates the corresponding server side EGLStream from the given wl_buffer + and attaches a consumer to it using the given attributes. + </description> + <arg name="wl_surface" type="object" interface="wl_surface" + summary="wl_surface corresponds to the client surface associated with + newly created eglstream"/> + <arg name="wl_resource" type="object" interface="wl_buffer" + summary="wl_resource corresponding to an EGLStream"/> + <arg name="attribs" type="array" + summary="Stream consumer attachment attribs"> + <description summary="List of attributes with consumer attachment data"> + It contains key-value pairs compatible with intptr_t type. A key must + be one of wl_eglstream_controller_attrib enumeration values. What a value + represents is attribute-specific. + </description> + </arg> + </request> + </interface> +</protocol> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/src/client/registry.cpp new/kwayland-5.58.0/src/client/registry.cpp --- old/kwayland-5.57.0/src/client/registry.cpp 2019-04-07 09:20:51.000000000 +0200 +++ new/kwayland-5.58.0/src/client/registry.cpp 2019-05-05 00:46:03.000000000 +0200 @@ -169,7 +169,7 @@ &Registry::subCompositorRemoved }}, {Registry::Interface::PlasmaShell, { - 5, + 6, QByteArrayLiteral("org_kde_plasma_shell"), &org_kde_plasma_shell_interface, &Registry::plasmaShellAnnounced, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/src/server/CMakeLists.txt new/kwayland-5.58.0/src/server/CMakeLists.txt --- old/kwayland-5.57.0/src/server/CMakeLists.txt 2019-04-07 09:20:51.000000000 +0200 +++ new/kwayland-5.58.0/src/server/CMakeLists.txt 2019-05-05 00:46:03.000000000 +0200 @@ -58,6 +58,7 @@ xdgshell_v6_interface.cpp xdgshell_stable_interface.cpp xdgoutput_interface.cpp + eglstream_controller_interface.cpp ../compat/wayland-xdg-shell-v5-protocol.c ) @@ -202,6 +203,11 @@ BASENAME xdg-decoration ) +ecm_add_wayland_server_protocol(SERVER_LIB_SRCS + PROTOCOL ${KWayland_SOURCE_DIR}/src/client/protocols/wayland-eglstream-controller.xml + BASENAME eglstream-controller +) + set(SERVER_GENERATED_SRCS ${CMAKE_CURRENT_BINARY_DIR}/wayland-output-management-client-protocol.h ${CMAKE_CURRENT_BINARY_DIR}/wayland-output-management-server-protocol.h @@ -257,6 +263,7 @@ ${CMAKE_CURRENT_BINARY_DIR}/wayland-output-unstable-v1-client-protocol.h ${CMAKE_CURRENT_BINARY_DIR}/wayland-xdg-decoration-server-protocol.h ${CMAKE_CURRENT_BINARY_DIR}/wayland-xdg-decoration-client-protocol.h + ${CMAKE_CURRENT_BINARY_DIR}/wayland-eglstream-controller-server-protocol.h ) set_source_files_properties(${SERVER_GENERATED_SRCS} PROPERTIES SKIP_AUTOMOC ON) @@ -303,6 +310,7 @@ datasource_interface.h display.h dpms_interface.h + eglstream_controller_interface.h filtered_display.h fakeinput_interface.h global.h diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/src/server/display.cpp new/kwayland-5.58.0/src/server/display.cpp --- old/kwayland-5.57.0/src/server/display.cpp 2019-04-07 09:20:51.000000000 +0200 +++ new/kwayland-5.58.0/src/server/display.cpp 2019-05-05 00:46:03.000000000 +0200 @@ -55,6 +55,7 @@ #include "plasmavirtualdesktop_interface.h" #include "xdgoutput_interface.h" #include "xdgdecoration_interface.h" +#include "eglstream_controller_interface.h" #include <QCoreApplication> #include <QDebug> @@ -514,6 +515,13 @@ return d; } +EglStreamControllerInterface *Display::createEglStreamControllerInterface(QObject *parent) +{ + EglStreamControllerInterface *e = new EglStreamControllerInterface(this, parent); + connect(this, &Display::aboutToTerminate, e, [e] { delete e; }); + return e; +} + void Display::createShm() { Q_ASSERT(d->display); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/src/server/display.h new/kwayland-5.58.0/src/server/display.h --- old/kwayland-5.57.0/src/server/display.h 2019-04-07 09:20:51.000000000 +0200 +++ new/kwayland-5.58.0/src/server/display.h 2019-05-05 00:46:03.000000000 +0200 @@ -90,6 +90,7 @@ class PlasmaVirtualDesktopManagementInterface; class XdgOutputManagerInterface; class XdgDecorationManagerInterface; +class EglStreamControllerInterface; /** * @brief Class holding the Wayland server display loop. @@ -303,6 +304,14 @@ XdgDecorationManagerInterface *createXdgDecorationManager(XdgShellInterface *shellInterface, QObject *parent = nullptr); /** + * Creates the EglStreamControllerInterface + * + * @return the created EGL Stream controller + * @since 5.58 + */ + EglStreamControllerInterface *createEglStreamControllerInterface(QObject *parent = nullptr); + + /** * Gets the ClientConnection for the given @p client. * If there is no ClientConnection yet for the given @p client, it will be created. * @param client The native client for which the ClientConnection is retrieved diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/src/server/eglstream_controller_interface.cpp new/kwayland-5.58.0/src/server/eglstream_controller_interface.cpp --- old/kwayland-5.57.0/src/server/eglstream_controller_interface.cpp 1970-01-01 01:00:00.000000000 +0100 +++ new/kwayland-5.58.0/src/server/eglstream_controller_interface.cpp 2019-05-05 00:46:03.000000000 +0200 @@ -0,0 +1,107 @@ +/**************************************************************************** +Copyright 2019 NVIDIA Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) version 3, or any +later version accepted by the membership of KDE e.V. (or its +successor approved by the membership of KDE e.V.), which shall +act as a proxy defined in Section 6 of version 3 of the license. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library. If not, see <http://www.gnu.org/licenses/>. +****************************************************************************/ +#include "eglstream_controller_interface_p.h" +#include "clientconnection.h" +#include "display.h" +#include "logging.h" + +#include <wayland-util.h> +#include <QLibrary> + +namespace KWayland +{ +namespace Server +{ + +const quint32 EglStreamControllerInterface::Private::s_version = 1; + +#ifndef DOXYGEN_SHOULD_SKIP_THIS +const struct wl_eglstream_controller_interface EglStreamControllerInterface::Private::s_interface = { + attachStreamConsumer, + attachStreamConsumerAttribs +}; +#endif + +void EglStreamControllerInterface::Private::attachStreamConsumer(wl_client *client, + wl_resource *resource, + wl_resource *surface, + wl_resource *eglStream) +{ + wl_array noAttribs = { 0, 0, nullptr }; + attachStreamConsumerAttribs(client, resource, surface, eglStream, &noAttribs); +} + +void EglStreamControllerInterface::Private::attachStreamConsumerAttribs(wl_client *client, + wl_resource *resource, + wl_resource *surface, + wl_resource *eglStream, + wl_array *attribs) +{ + Q_UNUSED(client); + Private *p = reinterpret_cast<Private *>(wl_resource_get_user_data(resource)); + emit p->q->streamConsumerAttached(SurfaceInterface::get(surface), eglStream, attribs); +} + +EglStreamControllerInterface::Private::Private(EglStreamControllerInterface *q, Display *display) + // libnvidia-egl-wayland.so.1 may not be present on all systems, so we load it dynamically + : Global::Private(display, + (wl_interface *)QLibrary::resolve(QLatin1String("libnvidia-egl-wayland.so.1"), + "wl_eglstream_controller_interface"), + s_version) + , q(q) +{ +} + +void EglStreamControllerInterface::Private::create() +{ + // bail out early if we were unable to load the interface + if (m_interface == nullptr) { + qCWarning(KWAYLAND_SERVER) << "failed to resolve wl_eglstream_controller_interface"; + return; + } + + Global::Private::create(); +} + +void EglStreamControllerInterface::Private::bind(wl_client *client, uint32_t version, uint32_t id) +{ + wl_resource *r = display->getConnection(client)->createResource(m_interface, version, id); + if (r == nullptr) { + wl_client_post_no_memory(client); + return; + } + + wl_resource_set_implementation(r, &s_interface, this, nullptr); +} + +EglStreamControllerInterface::~EglStreamControllerInterface() = default; + +EglStreamControllerInterface::EglStreamControllerInterface(Display *display, QObject *parent) + : Global(new Private(this, display), parent) +{ +} + +void EglStreamControllerInterface::create() +{ + static_cast<Private &>(*d).create(); +} + +} +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/src/server/eglstream_controller_interface.h new/kwayland-5.58.0/src/server/eglstream_controller_interface.h --- old/kwayland-5.57.0/src/server/eglstream_controller_interface.h 1970-01-01 01:00:00.000000000 +0100 +++ new/kwayland-5.58.0/src/server/eglstream_controller_interface.h 2019-05-05 00:46:03.000000000 +0200 @@ -0,0 +1,67 @@ +/**************************************************************************** +Copyright 2019 NVIDIA Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) version 3, or any +later version accepted by the membership of KDE e.V. (or its +successor approved by the membership of KDE e.V.), which shall +act as a proxy defined in Section 6 of version 3 of the license. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library. If not, see <http://www.gnu.org/licenses/>. +****************************************************************************/ +#ifndef WAYLAND_SERVER_EGLSTREAM_CONTROLLER_INTERFACE_H +#define WAYLAND_SERVER_EGLSTREAM_CONTROLLER_INTERFACE_H + +#include "global.h" +#include "surface_interface.h" + +#include <KWayland/Server/kwaylandserver_export.h> +#include <wayland-util.h> +#include <QObject> + +namespace KWayland +{ +namespace Server +{ + +class Display; + +/** + * @brief Represents the Global for the wl_eglstream_controller interface. + * + * This class handles requests (typically from the NVIDIA EGL driver) to attach + * a newly created EGL Stream to a Wayland surface, facilitating the sharing + * of buffer contents between client and compositor. + * + */ +class KWAYLANDSERVER_EXPORT EglStreamControllerInterface : public Global +{ + Q_OBJECT +public: + ~EglStreamControllerInterface() override; + void create(); + +Q_SIGNALS: + /** + * Emitted when a new stream attach request is received. + */ + void streamConsumerAttached(SurfaceInterface *surface, void *eglStream, wl_array *attribs); +private: + explicit EglStreamControllerInterface(Display *display, QObject *parent = nullptr); + + class Private; + friend class Display; +}; + +} +} + +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/src/server/eglstream_controller_interface_p.h new/kwayland-5.58.0/src/server/eglstream_controller_interface_p.h --- old/kwayland-5.57.0/src/server/eglstream_controller_interface_p.h 1970-01-01 01:00:00.000000000 +0100 +++ new/kwayland-5.58.0/src/server/eglstream_controller_interface_p.h 2019-05-05 00:46:03.000000000 +0200 @@ -0,0 +1,58 @@ +/**************************************************************************** +Copyright 2019 NVIDIA Inc. + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) version 3, or any +later version accepted by the membership of KDE e.V. (or its +successor approved by the membership of KDE e.V.), which shall +act as a proxy defined in Section 6 of version 3 of the license. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library. If not, see <http://www.gnu.org/licenses/>. +****************************************************************************/ +#ifndef WAYLAND_SERVER_EGLSTREAM_CONTROLLER_INTERFACE_P_H +#define WAYLAND_SERVER_EGLSTREAM_CONTROLLER_INTERFACE_P_H + +#include "eglstream_controller_interface.h" +#include "global_p.h" + +#include <wayland-eglstream-controller-server-protocol.h> + +namespace KWayland +{ +namespace Server +{ + +class Q_DECL_HIDDEN EglStreamControllerInterface::Private : public Global::Private +{ +public: + Private(EglStreamControllerInterface *controller, Display *display); + void create(); + +private: + static void attachStreamConsumer(wl_client *client, + wl_resource *resource, + wl_resource *surface, + wl_resource *eglStream); + static void attachStreamConsumerAttribs(wl_client *client, + wl_resource *resource, + wl_resource *surface, + wl_resource *eglStream, + wl_array *attribs); + static const struct wl_eglstream_controller_interface s_interface; + static const quint32 s_version; + void bind(wl_client *client, uint32_t version, uint32_t id) override; + EglStreamControllerInterface *q; +}; + +} +} + +#endif diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/src/server/plasmashell_interface.cpp new/kwayland-5.58.0/src/server/plasmashell_interface.cpp --- old/kwayland-5.57.0/src/server/plasmashell_interface.cpp 2019-04-07 09:20:51.000000000 +0200 +++ new/kwayland-5.58.0/src/server/plasmashell_interface.cpp 2019-05-05 00:46:03.000000000 +0200 @@ -50,7 +50,7 @@ static const quint32 s_version; }; -const quint32 PlasmaShellInterface::Private::s_version = 5; +const quint32 PlasmaShellInterface::Private::s_version = 6; PlasmaShellInterface::Private::Private(PlasmaShellInterface *q, Display *d) : Global::Private(d, &org_kde_plasma_shell_interface, s_version) @@ -252,6 +252,9 @@ case ORG_KDE_PLASMA_SURFACE_ROLE_TOOLTIP: r = Role::ToolTip; break; + case ORG_KDE_PLASMA_SURFACE_ROLE_CRITICALNOTIFICATION: + r = Role::CriticalNotification; + break; case ORG_KDE_PLASMA_SURFACE_ROLE_NORMAL: default: r = Role::Normal; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/src/server/plasmashell_interface.h new/kwayland-5.58.0/src/server/plasmashell_interface.h --- old/kwayland-5.57.0/src/server/plasmashell_interface.h 2019-04-07 09:20:51.000000000 +0200 +++ new/kwayland-5.58.0/src/server/plasmashell_interface.h 2019-05-05 00:46:03.000000000 +0200 @@ -110,7 +110,8 @@ Panel, ///< The surface represents a panel (dock), normally stacked above normal surfaces OnScreenDisplay, ///< The surface represents an on screen display, like a volume changed notification Notification, ///< The surface represents a notification @since 5.24 - ToolTip ///< The surface represents a tooltip @since 5.24 + ToolTip, ///< The surface represents a tooltip @since 5.24 + CriticalNotification, ///< The surface represents a critical notification, like battery is running out @since 5.58 }; /** * @returns The requested role, default value is @c Role::Normal. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-5.57.0/tests/plasmasurfacetest.cpp new/kwayland-5.58.0/tests/plasmasurfacetest.cpp --- old/kwayland-5.57.0/tests/plasmasurfacetest.cpp 2019-04-07 09:20:51.000000000 +0200 +++ new/kwayland-5.58.0/tests/plasmasurfacetest.cpp 2019-05-05 00:46:03.000000000 +0200 @@ -172,6 +172,8 @@ parser.addHelpOption(); QCommandLineOption notificationOption(QStringLiteral("notification")); parser.addOption(notificationOption); + QCommandLineOption criticalNotificationOption(QStringLiteral("criticalNotification")); + parser.addOption(criticalNotificationOption); QCommandLineOption panelOption(QStringLiteral("panel")); parser.addOption(panelOption); QCommandLineOption desktopOption(QStringLiteral("desktop")); @@ -191,6 +193,8 @@ if (parser.isSet(notificationOption)) { client.setRole(PlasmaShellSurface::Role::Notification); + } else if (parser.isSet(criticalNotificationOption)) { + client.setRole(PlasmaShellSurface::Role::CriticalNotification); } else if (parser.isSet(panelOption)) { client.setRole(PlasmaShellSurface::Role::Panel); } else if (parser.isSet(desktopOption)) {