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)) {


Reply via email to