Hello community,

here is the log from the commit of package kwayland for openSUSE:Factory 
checked in at 2018-10-22 11:16:02
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwayland (Old)
 and      /work/SRC/openSUSE:Factory/.kwayland.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kwayland"

Mon Oct 22 11:16:02 2018 rev:54 rq:642349 version:5.51.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/kwayland/kwayland.changes        2018-10-01 
08:09:42.138247348 +0200
+++ /work/SRC/openSUSE:Factory/.kwayland.new/kwayland.changes   2018-10-22 
11:16:06.167606574 +0200
@@ -1,0 +2,25 @@
+Tue Oct 16 08:02:40 UTC 2018 - Luca Beltrame <[email protected]>
+
+- Run spec-cleaner
+
+-------------------------------------------------------------------
+Mon Oct 15 11:50:39 UTC 2018 - [email protected]
+
+- Update to 5.51.0
+  * New feature release
+  * For more details please see:
+  * https://www.kde.org/announcements/kde-frameworks-5.51.0.php
+- Changes since 5.50.0:
+  * Don't silently error if damage is sent before buffer
+  * [server] Do not return early on fail in touchDown fall back code
+  * Minor: Add a few nullptrs
+  * Minor: Include Qt dirs as SYSTEM includes
+  * Minor: Fix CMake AUTOMOC warning
+  * Fix minor EBN issues
+  * [server] Fix remote access buffer handling when output not bound
+  * [autotests] Compare booleans to booleans
+  * Fix minor EBN issues
+  * [server] Do not try to create data offers without source
+  * [server] Abort drag start on correct conditions and without posting error
+
+-------------------------------------------------------------------

Old:
----
  kwayland-5.50.0.tar.xz

New:
----
  kwayland-5.51.0.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ kwayland.spec ++++++
--- /var/tmp/diff_new_pack.LmotXF/_old  2018-10-22 11:16:07.075605600 +0200
+++ /var/tmp/diff_new_pack.LmotXF/_new  2018-10-22 11:16:07.079605596 +0200
@@ -12,22 +12,22 @@
 # license that conforms to the Open Source Definition (Version 1.9)
 # published by the Open Source Initiative.
 
-# Please submit bugfixes or comments via http://bugs.opensuse.org/
+# Please submit bugfixes or comments via https://bugs.opensuse.org/
 #
 
 
-%define _tar_path 5.50
+%define _tar_path 5.51
 # 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.50.0
+Version:        5.51.0
 Release:        0
 Summary:        KDE Wayland library
 License:        LGPL-2.1-or-later
 Group:          Development/Libraries/KDE
-URL:            http://www.kde.org
+URL:            https://www.kde.org
 Source:         
http://download.kde.org/stable/frameworks/%{_tar_path}/%{name}-%{version}.tar.xz
 Source1:        baselibs.conf
 BuildRequires:  cmake >= 3.0

++++++ kwayland-5.50.0.tar.xz -> kwayland-5.51.0.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/CMakeLists.txt 
new/kwayland-5.51.0/CMakeLists.txt
--- old/kwayland-5.50.0/CMakeLists.txt  2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/CMakeLists.txt  2018-10-08 10:15:59.000000000 +0200
@@ -1,11 +1,11 @@
 cmake_minimum_required(VERSION 3.0)
 
-set(KF5_VERSION "5.50.0") # handled by release scripts
+set(KF5_VERSION "5.51.0") # handled by release scripts
 project(KWayland VERSION ${KF5_VERSION})
 
 # ECM setup
 include(FeatureSummary)
-find_package(ECM 5.50.0  NO_MODULE)
+find_package(ECM 5.51.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.50.0/autotests/client/test_datadevice.cpp 
new/kwayland-5.51.0/autotests/client/test_datadevice.cpp
--- old/kwayland-5.50.0/autotests/client/test_datadevice.cpp    2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/autotests/client/test_datadevice.cpp    2018-10-08 
10:15:59.000000000 +0200
@@ -49,7 +49,9 @@
     void cleanup();
 
     void testCreate();
+    void testDrag_data();
     void testDrag();
+    void testDragInternally_data();
     void testDragInternally();
     void testSetSelection();
     void testSendSelectionOnSeat();
@@ -208,6 +210,18 @@
     QVERIFY(!m_seatInterface->selection());
 }
 
+void TestDataDevice::testDrag_data()
+{
+    QTest::addColumn<bool>("hasGrab");
+    QTest::addColumn<bool>("hasPointerFocus");
+    QTest::addColumn<bool>("success");
+
+    QTest::newRow("grab and focus") << true << true << true;
+    QTest::newRow("no grab") << false << true << false;
+    QTest::newRow("no focus") << true << false << false;
+    QTest::newRow("no grab, no focus") << false << false << false;
+}
+
 void TestDataDevice::testDrag()
 {
     using namespace KWayland::Client;
@@ -251,19 +265,46 @@
     QVERIFY(dragStartedSpy.isValid());
 
     // first we need to fake the pointer enter
-    m_seatInterface->setFocusedPointerSurface(surfaceInterface);
-    m_seatInterface->pointerButtonPressed(1);
+    QFETCH(bool, hasGrab);
+    QFETCH(bool, hasPointerFocus);
+    QFETCH(bool, success);
+    if (!hasGrab) {
+        // in case we don't have grab, still generate a pointer serial to make 
it more interesting
+        m_seatInterface->pointerButtonPressed(Qt::LeftButton);
+    }
+    if (hasPointerFocus) {
+        m_seatInterface->setFocusedPointerSurface(surfaceInterface);
+    }
+    if (hasGrab) {
+        m_seatInterface->pointerButtonPressed(Qt::LeftButton);
+    }
 
-    QCoreApplication::processEvents();
+    // TODO: This test would be better, if it could also test that a client 
trying to guess
+    //       the last serial of a different client can't start a drag.
+    const quint32 pointerButtonSerial = success ? 
m_seatInterface->pointerButtonSerial(Qt::LeftButton) : 0;
 
-    dataDevice->startDrag(1, dataSource.data(), surface.data());
-    QVERIFY(dragStartedSpy.wait());
-    QCOMPARE(dragStartedSpy.count(), 1);
-    QCOMPARE(deviceInterface->dragSource(), sourceInterface);
-    QCOMPARE(deviceInterface->origin(), surfaceInterface);
+    QCoreApplication::processEvents();
+    // finally start the drag
+    dataDevice->startDrag(pointerButtonSerial, dataSource.data(), 
surface.data());
+    QCOMPARE(dragStartedSpy.wait(500), success);
+    QCOMPARE(!dragStartedSpy.isEmpty(), success);
+    QCOMPARE(deviceInterface->dragSource(), success ? sourceInterface : 
nullptr);
+    QCOMPARE(deviceInterface->origin(), success ? surfaceInterface : nullptr);
     QVERIFY(!deviceInterface->icon());
 }
 
+void TestDataDevice::testDragInternally_data()
+{
+    QTest::addColumn<bool>("hasGrab");
+    QTest::addColumn<bool>("hasPointerFocus");
+    QTest::addColumn<bool>("success");
+
+    QTest::newRow("grab and focus") << true << true << true;
+    QTest::newRow("no grab") << false << true << false;
+    QTest::newRow("no focus") << true << false << false;
+    QTest::newRow("no grab, no focus") << false << false << false;
+}
+
 void TestDataDevice::testDragInternally()
 {
     using namespace KWayland::Client;
@@ -303,17 +344,32 @@
     QVERIFY(dragStartedSpy.isValid());
 
     // first we need to fake the pointer enter
-    m_seatInterface->setFocusedPointerSurface(surfaceInterface);
-    m_seatInterface->pointerButtonPressed(1);
+    QFETCH(bool, hasGrab);
+    QFETCH(bool, hasPointerFocus);
+    QFETCH(bool, success);
+    if (!hasGrab) {
+        // in case we don't have grab, still generate a pointer serial to make 
it more interesting
+        m_seatInterface->pointerButtonPressed(Qt::LeftButton);
+    }
+    if (hasPointerFocus) {
+        m_seatInterface->setFocusedPointerSurface(surfaceInterface);
+    }
+    if (hasGrab) {
+        m_seatInterface->pointerButtonPressed(Qt::LeftButton);
+    }
 
-    QCoreApplication::processEvents();
+    // TODO: This test would be better, if it could also test that a client 
trying to guess
+    //       the last serial of a different client can't start a drag.
+    const quint32 pointerButtonSerial = success ? 
m_seatInterface->pointerButtonSerial(Qt::LeftButton) : 0;
 
-    dataDevice->startDragInternally(1, surface.data(), iconSurface.data());
-    QVERIFY(dragStartedSpy.wait());
-    QCOMPARE(dragStartedSpy.count(), 1);
+    QCoreApplication::processEvents();
+    // finally start the internal drag
+    dataDevice->startDragInternally(pointerButtonSerial, surface.data(), 
iconSurface.data());
+    QCOMPARE(dragStartedSpy.wait(500), success);
+    QCOMPARE(!dragStartedSpy.isEmpty(), success);
     QVERIFY(!deviceInterface->dragSource());
-    QCOMPARE(deviceInterface->origin(), surfaceInterface);
-    QCOMPARE(deviceInterface->icon(), iconSurfaceInterface);
+    QCOMPARE(deviceInterface->origin(), success ? surfaceInterface : nullptr);
+    QCOMPARE(deviceInterface->icon(), success ? iconSurfaceInterface : 
nullptr);
 }
 
 void TestDataDevice::testSetSelection()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/autotests/client/test_remote_access.cpp 
new/kwayland-5.51.0/autotests/client/test_remote_access.cpp
--- old/kwayland-5.50.0/autotests/client/test_remote_access.cpp 2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/autotests/client/test_remote_access.cpp 2018-10-08 
10:15:59.000000000 +0200
@@ -1,5 +1,6 @@
 /********************************************************************
 Copyright 2016  Oleg Chernovskiy <[email protected]>
+Copyright 2018  Roman Gilg <[email protected]>
 
 This library is free software; you can redistribute it and/or
 modify it under the terms of the GNU Lesser General Public
@@ -48,22 +49,108 @@
 
     void testSendReleaseSingle();
     void testSendReleaseMultiple();
+    void testSendReleaseCrossScreen();
     void testSendClientGone();
     void testSendReceiveClientGone();
 
 private:
     Display *m_display = nullptr;
-    OutputInterface *m_outputInterface = nullptr;
+    OutputInterface *m_outputInterface[2] = {nullptr};
     RemoteAccessManagerInterface *m_remoteAccessInterface = nullptr;
-    ConnectionThread *m_connection = nullptr;
-    QThread *m_thread = nullptr;
-    EventQueue *m_queue = nullptr;
-    Registry *m_registry = nullptr;
-    Output *m_output = nullptr;
+};
+
+class MockupClient : public QObject
+{
+    Q_OBJECT
+public:
+    MockupClient(QObject *parent = nullptr);
+    ~MockupClient();
+
+    void bindOutput(int index);
+
+    ConnectionThread *connection = nullptr;
+    QThread *thread = nullptr;
+    EventQueue *queue = nullptr;
+    Registry *registry = nullptr;
+    RemoteAccessManager *remoteAccess = nullptr;
+    Output *outputs[2] = {nullptr};
 };
 
 static const QString s_socketName = 
QStringLiteral("kwayland-test-remote-access-0");
 
+MockupClient::MockupClient(QObject *parent)
+    : QObject(parent)
+{
+    // setup connection
+    connection = new KWayland::Client::ConnectionThread;
+    QSignalSpy connectedSpy(connection, &ConnectionThread::connected);
+    QVERIFY(connectedSpy.isValid());
+    connection->setSocketName(s_socketName);
+
+    thread = new QThread(this);
+    connection->moveToThread(thread);
+    thread->start();
+
+    connection->initConnection();
+    QVERIFY(connectedSpy.wait());
+
+    queue = new EventQueue(this);
+    queue->setup(connection);
+
+    registry = new Registry(this);
+    QSignalSpy interfacesAnnouncedSpy(registry, 
&Registry::interfacesAnnounced);
+    QVERIFY(interfacesAnnouncedSpy.isValid());
+    registry->setEventQueue(queue);
+    registry->create(connection);
+    QVERIFY(registry->isValid());
+    registry->setup();
+    QVERIFY(interfacesAnnouncedSpy.wait());
+
+    remoteAccess = registry->createRemoteAccessManager(
+                                            
registry->interface(Registry::Interface::RemoteAccessManager).name,
+                                            
registry->interface(Registry::Interface::RemoteAccessManager).version,
+                                            this);
+    QVERIFY(remoteAccess->isValid());
+    connection->flush();
+}
+
+MockupClient::~MockupClient()
+{
+#define CLEANUP(variable) \
+    if (variable) { \
+        delete variable; \
+        variable = nullptr; \
+    }
+    CLEANUP(outputs[0])
+    CLEANUP(outputs[1])
+    CLEANUP(remoteAccess)
+    CLEANUP(queue)
+    CLEANUP(registry)
+    if (thread) {
+        if (connection) {
+            connection->flush();
+            connection->deleteLater();
+            connection = nullptr;
+        }
+
+        thread->quit();
+        thread->wait();
+        delete thread;
+        thread = nullptr;
+    }
+#undef CLEANUP
+}
+
+void MockupClient::bindOutput(int index)
+{
+    // client-bound output
+    outputs[index] = 
registry->createOutput(registry->interfaces(Registry::Interface::Output)[index].name,
+                             
registry->interfaces(Registry::Interface::Output)[index].version,
+                             this);
+    QVERIFY(outputs[index]->isValid());
+    connection->flush();
+}
+
 void RemoteAccessTest::init()
 {
     qRegisterMetaType<const BufferHandle *>();
@@ -76,42 +163,18 @@
     m_display->start();
     QVERIFY(m_display->isRunning());
     m_display->createShm();
-    m_outputInterface = m_display->createOutput();
-    m_outputInterface->create();
+
+    auto initOutputIface = [this](int i) {
+        m_outputInterface[i] = m_display->createOutput();
+        m_outputInterface[i]->create();
+    };
+    initOutputIface(0);
+    initOutputIface(1);
+
     m_remoteAccessInterface = m_display->createRemoteAccessManager();
     m_remoteAccessInterface->create();
     QSignalSpy bufferReleasedSpy(m_remoteAccessInterface, 
&RemoteAccessManagerInterface::bufferReleased);
     QVERIFY(bufferReleasedSpy.isValid());
-
-    // setup connection
-    m_connection = new KWayland::Client::ConnectionThread;
-    QSignalSpy connectedSpy(m_connection, &ConnectionThread::connected);
-    QVERIFY(connectedSpy.isValid());
-    m_connection->setSocketName(s_socketName);
-
-    m_thread = new QThread(this);
-    m_connection->moveToThread(m_thread);
-    m_thread->start();
-
-    m_connection->initConnection();
-    QVERIFY(connectedSpy.wait());
-
-    m_queue = new EventQueue(this);
-    m_queue->setup(m_connection);
-
-    m_registry = new Registry(this);
-    QSignalSpy interfacesAnnouncedSpy(m_registry, 
&Registry::interfacesAnnounced);
-    QVERIFY(interfacesAnnouncedSpy.isValid());
-    m_registry->setEventQueue(m_queue);
-    m_registry->create(m_connection);
-    QVERIFY(m_registry->isValid());
-    m_registry->setup();
-    QVERIFY(interfacesAnnouncedSpy.wait());
-
-    // client-bound output
-    m_output = 
m_registry->createOutput(m_registry->interface(Registry::Interface::Output).name,
-                             
m_registry->interface(Registry::Interface::Output).version,
-                             this);
 }
 
 void RemoteAccessTest::cleanup()
@@ -121,22 +184,8 @@
         delete variable; \
         variable = nullptr; \
     }
-    CLEANUP(m_output)
-    CLEANUP(m_queue)
-    CLEANUP(m_registry)
-    if (m_thread) {
-        if (m_connection) {
-            m_connection->flush();
-            m_connection->deleteLater();
-            m_connection = nullptr;
-        }
-
-        m_thread->quit();
-        m_thread->wait();
-        delete m_thread;
-        m_thread = nullptr;
-    }
-
+    CLEANUP(m_outputInterface[0])
+    CLEANUP(m_outputInterface[1])
     CLEANUP(m_remoteAccessInterface)
     CLEANUP(m_display)
 #undef CLEANUP
@@ -148,16 +197,13 @@
 
     // setup
     QVERIFY(!m_remoteAccessInterface->isBound());
-    auto client = m_registry->createRemoteAccessManager(
-                                            
m_registry->interface(Registry::Interface::RemoteAccessManager).name,
-                                            
m_registry->interface(Registry::Interface::RemoteAccessManager).version,
-                                            this);
-    QVERIFY(client->isValid());
-    m_connection->flush();
+    auto *client = new MockupClient(this);
+    client->bindOutput(0);
+
     m_display->dispatchEvents();
 
     QVERIFY(m_remoteAccessInterface->isBound()); // we have one client now
-    QSignalSpy bufferReadySpy(client, &RemoteAccessManager::bufferReady);
+    QSignalSpy bufferReadySpy(client->remoteAccess, 
&RemoteAccessManager::bufferReady);
     QVERIFY(bufferReadySpy.isValid());
 
     BufferHandle *buf = new BufferHandle();
@@ -168,7 +214,7 @@
     buf->setSize(50, 50);
     buf->setFormat(100500);
     buf->setStride(7800);
-    m_remoteAccessInterface->sendBufferReady(m_outputInterface, buf);
+    m_remoteAccessInterface->sendBufferReady(m_outputInterface[0], buf);
 
     // receive buffer
     QVERIFY(bufferReadySpy.wait());
@@ -193,7 +239,6 @@
     // cleanup
     delete buf;
     delete client;
-    m_connection->flush();
     m_display->dispatchEvents();
     QVERIFY(!m_remoteAccessInterface->isBound());
 }
@@ -204,23 +249,16 @@
 
     // setup
     QVERIFY(!m_remoteAccessInterface->isBound());
-    auto client1 = m_registry->createRemoteAccessManager(
-                                            
m_registry->interface(Registry::Interface::RemoteAccessManager).name,
-                                            
m_registry->interface(Registry::Interface::RemoteAccessManager).version,
-                                            this);
-    QVERIFY(client1->isValid());
-    auto client2 = m_registry->createRemoteAccessManager(
-                                            
m_registry->interface(Registry::Interface::RemoteAccessManager).name,
-                                            
m_registry->interface(Registry::Interface::RemoteAccessManager).version,
-                                            this);
-    QVERIFY(client2->isValid());
-    m_connection->flush();
+    auto *client1 = new MockupClient(this);
+    auto *client2 = new MockupClient(this);
+    client1->bindOutput(0);
+    client2->bindOutput(0);
     m_display->dispatchEvents();
-
     QVERIFY(m_remoteAccessInterface->isBound()); // now we have 2 clients
-    QSignalSpy bufferReadySpy1(client1, &RemoteAccessManager::bufferReady);
+
+    QSignalSpy bufferReadySpy1(client1->remoteAccess, 
&RemoteAccessManager::bufferReady);
     QVERIFY(bufferReadySpy1.isValid());
-    QSignalSpy bufferReadySpy2(client2, &RemoteAccessManager::bufferReady);
+    QSignalSpy bufferReadySpy2(client2->remoteAccess, 
&RemoteAccessManager::bufferReady);
     QVERIFY(bufferReadySpy2.isValid());
 
     BufferHandle *buf = new BufferHandle();
@@ -231,10 +269,13 @@
     buf->setSize(50, 50);
     buf->setFormat(100500);
     buf->setStride(7800);
-    m_remoteAccessInterface->sendBufferReady(m_outputInterface, buf);
+    m_remoteAccessInterface->sendBufferReady(m_outputInterface[0], buf);
 
     // wait for event loop
     QVERIFY(bufferReadySpy1.wait());
+    if (bufferReadySpy2.size() == 0) {
+        QVERIFY(bufferReadySpy2.wait());
+    }
 
     // receive buffer at client 1
     QCOMPARE(bufferReadySpy1.size(), 1);
@@ -251,6 +292,9 @@
     // wait for event loop
     QVERIFY(paramsObtainedSpy1.wait());
     QCOMPARE(paramsObtainedSpy1.size(), 1);
+    if (paramsObtainedSpy2.size() == 0) {
+        QVERIFY(paramsObtainedSpy2.wait());
+    }
     QCOMPARE(paramsObtainedSpy2.size(), 1);
 
     // release
@@ -266,7 +310,92 @@
     delete buf;
     delete client1;
     delete client2;
-    m_connection->flush();
+    m_display->dispatchEvents();
+    QVERIFY(!m_remoteAccessInterface->isBound());
+}
+
+void RemoteAccessTest::testSendReleaseCrossScreen()
+{
+    // this test verifies that multiple buffers for multiple screens are sent 
to
+    // multiple clients and returned back
+
+    // setup
+    QVERIFY(!m_remoteAccessInterface->isBound());
+    auto *client1 = new MockupClient(this);
+    auto *client2 = new MockupClient(this);
+    client1->bindOutput(1);
+    client2->bindOutput(0);
+    m_display->dispatchEvents();
+    QVERIFY(m_remoteAccessInterface->isBound()); // now we have 2 clients
+
+    QSignalSpy bufferReadySpy1(client1->remoteAccess, 
&RemoteAccessManager::bufferReady);
+    QVERIFY(bufferReadySpy1.isValid());
+    QSignalSpy bufferReadySpy2(client2->remoteAccess, 
&RemoteAccessManager::bufferReady);
+    QVERIFY(bufferReadySpy2.isValid());
+
+    BufferHandle *buf1 = new BufferHandle();
+    QTemporaryFile *tmpFile1 = new QTemporaryFile(this);
+    tmpFile1->open();
+
+    BufferHandle *buf2 = new BufferHandle();
+    QTemporaryFile *tmpFile2 = new QTemporaryFile(this);
+    tmpFile2->open();
+
+    buf1->setFd(tmpFile1->handle());
+    buf1->setSize(50, 50);
+    buf1->setFormat(100500);
+    buf1->setStride(7800);
+
+    buf2->setFd(tmpFile2->handle());
+    buf2->setSize(100, 100);
+    buf2->setFormat(100500);
+    buf2->setStride(7800);
+
+    m_remoteAccessInterface->sendBufferReady(m_outputInterface[0], buf1);
+    m_remoteAccessInterface->sendBufferReady(m_outputInterface[1], buf2);
+
+    // wait for event loop
+    QVERIFY(bufferReadySpy1.wait());
+    if (bufferReadySpy2.size() == 0) {
+        QVERIFY(bufferReadySpy2.wait());
+    }
+
+    // receive buffer at client 1
+    QCOMPARE(bufferReadySpy1.size(), 1);
+    auto rbuf1 = bufferReadySpy1.takeFirst()[1].value<const RemoteBuffer *>();
+    QSignalSpy paramsObtainedSpy1(rbuf1, &RemoteBuffer::parametersObtained);
+    QVERIFY(paramsObtainedSpy1.isValid());
+
+    // receive buffer at client 2
+    QCOMPARE(bufferReadySpy2.size(), 1);
+    auto rbuf2 = bufferReadySpy2.takeFirst()[1].value<const RemoteBuffer *>();
+    QSignalSpy paramsObtainedSpy2(rbuf2, &RemoteBuffer::parametersObtained);
+    QVERIFY(paramsObtainedSpy2.isValid());
+
+    // wait for event loop
+    QVERIFY(paramsObtainedSpy1.wait());
+    if (paramsObtainedSpy2.size() == 0) {
+        QVERIFY(paramsObtainedSpy2.wait());
+    }
+    QCOMPARE(paramsObtainedSpy1.size(), 1);
+    QCOMPARE(paramsObtainedSpy2.size(), 1);
+
+    // release
+    QSignalSpy bufferReleasedSpy(m_remoteAccessInterface, 
&RemoteAccessManagerInterface::bufferReleased);
+    QVERIFY(bufferReleasedSpy.isValid());
+    delete rbuf1;
+    QVERIFY(bufferReleasedSpy.wait());
+
+    delete rbuf2;
+    QVERIFY(bufferReleasedSpy.wait());
+
+    QCOMPARE(bufferReleasedSpy.size(), 2);
+
+    // cleanup
+    delete buf1;
+    delete buf2;
+    delete client1;
+    delete client2;
     m_display->dispatchEvents();
     QVERIFY(!m_remoteAccessInterface->isBound());
 }
@@ -275,16 +404,12 @@
 {
     // this test verifies that when buffer is sent and client is gone, server 
will release buffer correctly
     QVERIFY(!m_remoteAccessInterface->isBound());
-    auto client = m_registry->createRemoteAccessManager(
-                                            
m_registry->interface(Registry::Interface::RemoteAccessManager).name,
-                                            
m_registry->interface(Registry::Interface::RemoteAccessManager).version,
-                                            this);
-    QVERIFY(client->isValid());
-    m_connection->flush();
+    auto *client = new MockupClient(this);
+    client->bindOutput(0);
     m_display->dispatchEvents();
 
     QVERIFY(m_remoteAccessInterface->isBound()); // we have one client now
-    QSignalSpy bufferReadySpy(client, &RemoteAccessManager::bufferReady);
+    QSignalSpy bufferReadySpy(client->remoteAccess, 
&RemoteAccessManager::bufferReady);
     QVERIFY(bufferReadySpy.isValid());
 
     BufferHandle *buf = new BufferHandle();
@@ -295,7 +420,7 @@
     buf->setSize(50, 50);
     buf->setFormat(100500);
     buf->setStride(7800);
-    m_remoteAccessInterface->sendBufferReady(m_outputInterface, buf);
+    m_remoteAccessInterface->sendBufferReady(m_outputInterface[0], buf);
 
     // release forcefully
     QSignalSpy bufferReleasedSpy(m_remoteAccessInterface, 
&RemoteAccessManagerInterface::bufferReleased);
@@ -305,7 +430,6 @@
 
     // cleanup
     delete buf;
-    m_connection->flush();
     m_display->dispatchEvents();
     QVERIFY(!m_remoteAccessInterface->isBound());
 }
@@ -315,16 +439,12 @@
     // this test verifies that when buffer is sent, received and client is 
gone, 
     // both client and server will release buffer correctly
     QVERIFY(!m_remoteAccessInterface->isBound());
-    auto client = m_registry->createRemoteAccessManager(
-                                            
m_registry->interface(Registry::Interface::RemoteAccessManager).name,
-                                            
m_registry->interface(Registry::Interface::RemoteAccessManager).version,
-                                            this);
-    QVERIFY(client->isValid());
-    m_connection->flush();
+    auto *client = new MockupClient(this);
+    client->bindOutput(0);
     m_display->dispatchEvents();
 
     QVERIFY(m_remoteAccessInterface->isBound()); // we have one client now
-    QSignalSpy bufferReadySpy(client, &RemoteAccessManager::bufferReady);
+    QSignalSpy bufferReadySpy(client->remoteAccess, 
&RemoteAccessManager::bufferReady);
     QVERIFY(bufferReadySpy.isValid());
 
     BufferHandle *buf = new BufferHandle();
@@ -335,7 +455,7 @@
     buf->setSize(50, 50);
     buf->setFormat(100500);
     buf->setStride(7800);
-    m_remoteAccessInterface->sendBufferReady(m_outputInterface, buf);
+    m_remoteAccessInterface->sendBufferReady(m_outputInterface[0], buf);
 
     // receive buffer
     QVERIFY(bufferReadySpy.wait());
@@ -359,11 +479,9 @@
 
     // cleanup
     delete buf;
-    m_connection->flush();
     m_display->dispatchEvents();
     QVERIFY(!m_remoteAccessInterface->isBound());
 }
 
-
 QTEST_GUILESS_MAIN(RemoteAccessTest)
 #include "test_remote_access.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/autotests/client/test_wayland_outputdevice.cpp 
new/kwayland-5.51.0/autotests/client/test_wayland_outputdevice.cpp
--- old/kwayland-5.50.0/autotests/client/test_wayland_outputdevice.cpp  
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/autotests/client/test_wayland_outputdevice.cpp  
2018-10-08 10:15:59.000000000 +0200
@@ -372,7 +372,7 @@
     m_serverOutputDevice->setScale(2);
     QVERIFY(outputChanged.wait());
     QCOMPARE(output.scale(), 2);
-    QCOMPARE(output.scaleF(), 2.0); //check we're forward compatiable
+    QCOMPARE(output.scaleF(), 2.0); //check we're forward compatible
 
 
     // change once more
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/autotests/client/test_wayland_outputmanagement.cpp 
new/kwayland-5.51.0/autotests/client/test_wayland_outputmanagement.cpp
--- old/kwayland-5.50.0/autotests/client/test_wayland_outputmanagement.cpp      
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/autotests/client/test_wayland_outputmanagement.cpp      
2018-10-08 10:15:59.000000000 +0200
@@ -479,7 +479,7 @@
 
     QVERIFY(serverApplySpy.wait(200));
 
-    // Artificialy make the server fail to apply the settings
+    // Artificially make the server fail to apply the settings
     // Make sure the applied signal never comes, and that failed has been 
received
     QVERIFY(!configAppliedSpy.wait(200));
     QCOMPARE(configFailedSpy.count(), 1);
@@ -537,7 +537,7 @@
     //will be setApplied using the connect above
 
     QCOMPARE(output->scale(), 3);
-    QCOMPARE(output->scaleF(), 3.0); //test fowards compatibility
+    QCOMPARE(output->scaleF(), 3.0); //test forward compatibility
 }
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/autotests/client/test_wayland_registry.cpp 
new/kwayland-5.51.0/autotests/client/test_wayland_registry.cpp
--- old/kwayland-5.50.0/autotests/client/test_wayland_registry.cpp      
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/autotests/client/test_wayland_registry.cpp      
2018-10-08 10:15:59.000000000 +0200
@@ -641,7 +641,7 @@
     QVERIFY(blurRemovedSpy.count() == 0);
 
     //use the in the client
-    blurManager->createBlur(surface.data(), 0);
+    blurManager->createBlur(surface.data(), nullptr);
 
     //now process events,
     QVERIFY(blurRemovedSpy.wait());
@@ -656,7 +656,7 @@
     QVERIFY(contrastRemovedSpy.count() == 0);
 
     //use the in the client
-    contrastManager->createContrast(surface.data(), 0);
+    contrastManager->createContrast(surface.data(), nullptr);
 
     //now process events,
     QVERIFY(contrastRemovedSpy.wait());
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/autotests/client/test_wayland_seat.cpp 
new/kwayland-5.51.0/autotests/client/test_wayland_seat.cpp
--- old/kwayland-5.50.0/autotests/client/test_wayland_seat.cpp  2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/autotests/client/test_wayland_seat.cpp  2018-10-08 
10:15:59.000000000 +0200
@@ -1820,7 +1820,7 @@
     // setting the same again should not change
     m_seatInterface->setSelection(ddi);
     QVERIFY(!selectionSpy.wait(100));
-    // now clear it manully
+    // now clear it manually
     m_seatInterface->setSelection(nullptr);
     QVERIFY(selectionClearedSpy.wait());
     QCOMPARE(selectionSpy.count(), 2);
@@ -2183,7 +2183,7 @@
     QCOMPARE(unboundSpy.count(), 1);
     QCOMPARE(destroyedSpy.count(), 0);
     QVERIFY(!serverTouch->resource());
-    // try to call into all the the methods of the touch interface, should not 
crash
+    // try to call into all the methods of the touch interface, should not 
crash
     QCOMPARE(m_seatInterface->focusedTouch(), serverTouch);
     m_seatInterface->setTimestamp(8);
     QCOMPARE(m_seatInterface->touchDown(QPointF(15, 26)), 0);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/autotests/client/test_wayland_windowmanagement.cpp 
new/kwayland-5.51.0/autotests/client/test_wayland_windowmanagement.cpp
--- old/kwayland-5.50.0/autotests/client/test_wayland_windowmanagement.cpp      
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/autotests/client/test_wayland_windowmanagement.cpp      
2018-10-08 10:15:59.000000000 +0200
@@ -27,7 +27,6 @@
 #include "../../src/client/registry.h"
 #include "../../src/client/surface.h"
 #include "../../src/client/plasmawindowmanagement.h"
-#include "../../src/client/surface.h"
 #include "../../src/server/display.h"
 #include "../../src/server/compositor_interface.h"
 #include "../../src/server/region_interface.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/autotests/client/test_xdg_shell.cpp 
new/kwayland-5.51.0/autotests/client/test_xdg_shell.cpp
--- old/kwayland-5.50.0/autotests/client/test_xdg_shell.cpp     2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/autotests/client/test_xdg_shell.cpp     2018-10-08 
10:15:59.000000000 +0200
@@ -571,5 +571,3 @@
     QCOMPARE(sizeChangedSpy.count(), 3);
     QCOMPARE(xdgSurface->size(), QSize(30, 40));
 }
-
-#include "test_xdg_shell.moc"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/autotests/client/test_xdg_shell.h 
new/kwayland-5.51.0/autotests/client/test_xdg_shell.h
--- old/kwayland-5.50.0/autotests/client/test_xdg_shell.h       2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/autotests/client/test_xdg_shell.h       2018-10-08 
10:15:59.000000000 +0200
@@ -17,6 +17,9 @@
 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 TEST_XDG_SHELL_H
+#define TEST_XDG_SHELL_H
+
 // Qt
 #include <QtTest/QtTest>
 // client
@@ -99,3 +102,5 @@
     QVERIFY(xdgSurfaceCreatedSpy.wait()); \
     auto serverXdgSurface = 
xdgSurfaceCreatedSpy.first().first().value<XdgShellSurfaceInterface*>(); \
     QVERIFY(serverXdgSurface);
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/client/CMakeLists.txt 
new/kwayland-5.51.0/src/client/CMakeLists.txt
--- old/kwayland-5.50.0/src/client/CMakeLists.txt       2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/client/CMakeLists.txt       2018-10-08 
10:15:59.000000000 +0200
@@ -3,7 +3,7 @@
 remove_definitions(-DQT_NO_CAST_TO_ASCII)
 
 # needed to access QPA
-include_directories(${Qt5Gui_PRIVATE_INCLUDE_DIRS})
+include_directories(SYSTEM ${Qt5Gui_PRIVATE_INCLUDE_DIRS})
 
 set(CLIENT_LIB_SRCS
     appmenu.cpp
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/client/contrast.h 
new/kwayland-5.51.0/src/client/contrast.h
--- old/kwayland-5.50.0/src/client/contrast.h   2018-09-01 00:24:35.000000000 
+0200
+++ new/kwayland-5.51.0/src/client/contrast.h   2018-10-08 10:15:59.000000000 
+0200
@@ -180,7 +180,7 @@
     void commit();
 
     /**
-     * Sets the area of the window that will have a contrastred
+     * Sets the area of the window that will have a contrasted
      * background.
      * The region will have to be created with
      * Compositor::createRegion(QRegion)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/client/idle.h 
new/kwayland-5.51.0/src/client/idle.h
--- old/kwayland-5.50.0/src/client/idle.h       2018-09-01 00:24:35.000000000 
+0200
+++ new/kwayland-5.51.0/src/client/idle.h       2018-10-08 10:15:59.000000000 
+0200
@@ -127,8 +127,8 @@
      * timeout. A Wayland server might for example have a minimum timeout 
which is
      * larger than @p msec.
      *
-     * @param msec The duration in milli seconds after which an idle timeout 
should fire
-     * @param seat The Seat on which the user acitivity should be monitored.
+     * @param msec The duration in milliseconds after which an idle timeout 
should fire
+     * @param seat The Seat on which the user activity should be monitored.
      **/
     IdleTimeout *getTimeout(quint32 msecs, Seat *seat, QObject *parent = 
nullptr);
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/client/outputconfiguration.h 
new/kwayland-5.51.0/src/client/outputconfiguration.h
--- old/kwayland-5.50.0/src/client/outputconfiguration.h        2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/client/outputconfiguration.h        2018-10-08 
10:15:59.000000000 +0200
@@ -177,7 +177,7 @@
     /**
      * Position this output in the global space, relative to other outputs.
      * QPoint(0, 0) for top-left. The position is the top-left corner of this 
output.
-     * There may not be gaps between outputs, they have to be positioned 
adjacend to
+     * There may not be gaps between outputs, they have to be positioned 
adjacent to
      * each other.
      * The changes done in this call will be recorded in the
      * OutputDevice and only applied after apply() has been called.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/client/outputdevice.cpp 
new/kwayland-5.51.0/src/client/outputdevice.cpp
--- old/kwayland-5.50.0/src/client/outputdevice.cpp     2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/client/outputdevice.cpp     2018-10-08 
10:15:59.000000000 +0200
@@ -18,8 +18,8 @@
 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 "logging_p.h"
 #include "outputdevice.h"
+#include "logging_p.h"
 #include "wayland_pointer_p.h"
 // Qt
 #include <QDebug>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/client/plasmawindowmodel.h 
new/kwayland-5.51.0/src/client/plasmawindowmodel.h
--- old/kwayland-5.50.0/src/client/plasmawindowmodel.h  2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/client/plasmawindowmodel.h  2018-10-08 
10:15:59.000000000 +0200
@@ -44,7 +44,7 @@
  * The model resets when the PlasmaWindowManagement parent signals that its
  * interface is about to be destroyed.
  *
- * To use this class you can create an instance yourself, or preferrably use 
the
+ * To use this class you can create an instance yourself, or preferably use the
  * convenience method in PlasmaWindowManagement:
  * @code
  * PlasmaWindowModel *model = wm->createWindowModel();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/client/protocols/fullscreen-shell.xml 
new/kwayland-5.51.0/src/client/protocols/fullscreen-shell.xml
--- old/kwayland-5.50.0/src/client/protocols/fullscreen-shell.xml       
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/client/protocols/fullscreen-shell.xml       
2018-10-08 10:15:59.000000000 +0200
@@ -45,7 +45,7 @@
 
        ARBITRARY_MODE:
        This is a hint to the client that indicates that the compositor is
-       capable of setting practially any mode on its outputs.  If this
+       capable of setting practically any mode on its outputs.  If this
        capability is provided, wl_fullscreen_shell.present_surface_for_mode
        will almost never fail and clients should feel free to set whatever
        mode they like.  If the compositor does not advertise this, it may
@@ -73,7 +73,7 @@
        once for each capability advertised.  Valid capabilities are given by
        the wl_fullscreen_shell.capability enum.  If clients want to take
        advantage of any of these capabilities, they sould use a
-       wl_display.sync request immediatly after binding to ensure that they
+       wl_display.sync request immediately after binding to ensure that they
        receive all the capability events.
       </description>
       <arg name="capabilty" type="uint"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/client/protocols/outputdevice.xml 
new/kwayland-5.51.0/src/client/protocols/outputdevice.xml
--- old/kwayland-5.50.0/src/client/protocols/outputdevice.xml   2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/client/protocols/outputdevice.xml   2018-10-08 
10:15:59.000000000 +0200
@@ -45,7 +45,7 @@
         accordingly.
 
         This object is published as global during start up for every available
-        display devcies, or when one later becomes available, for example by
+        display devices, or when one later becomes available, for example by
         being hotplugged via a physical connector.
     </description>
 
@@ -257,7 +257,7 @@
 
     <event name="colorcurves" since="2">
         <description summary="output color curves">
-            Decribes the color intensity profile of the output.
+            Describes the color intensity profile of the output.
             Commonly used for gamma/color correction.
 
             The array contains all color ramp values of the output.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/client/protocols/plasma-shell.xml 
new/kwayland-5.51.0/src/client/protocols/plasma-shell.xml
--- old/kwayland-5.50.0/src/client/protocols/plasma-shell.xml   2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/client/protocols/plasma-shell.xml   2018-10-08 
10:15:59.000000000 +0200
@@ -203,7 +203,7 @@
         Assign a role to a shell surface.
 
         The compositor handles surfaces depending on their role.
-        See the explaination below.
+        See the explanation below.
 
         This request fails if the surface already has a role, this means
         the surface role may be assigned only once.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/client/protocols/plasma-window-management.xml 
new/kwayland-5.51.0/src/client/protocols/plasma-window-management.xml
--- old/kwayland-5.50.0/src/client/protocols/plasma-window-management.xml       
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/client/protocols/plasma-window-management.xml       
2018-10-08 10:15:59.000000000 +0200
@@ -242,7 +242,7 @@
     <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 coordinages are in absolute coordinates of the windowing 
system.
+            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"/>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/client/protocols/pointer-constraints-unstable-v1.xml 
new/kwayland-5.51.0/src/client/protocols/pointer-constraints-unstable-v1.xml
--- 
old/kwayland-5.50.0/src/client/protocols/pointer-constraints-unstable-v1.xml    
    2018-09-01 00:24:35.000000000 +0200
+++ 
new/kwayland-5.51.0/src/client/protocols/pointer-constraints-unstable-v1.xml    
    2018-10-08 10:15:59.000000000 +0200
@@ -132,7 +132,7 @@
 
        The request creates a new object wp_locked_pointer which is used to
        interact with the lock as well as receive updates about its state. See
-       the the description of wp_locked_pointer for further information.
+       the description of wp_locked_pointer for further information.
 
        Note that while a pointer is locked, the wl_pointer objects of the
        corresponding seat will not emit any wl_pointer.motion events, but
@@ -168,7 +168,7 @@
 
        The request will create a new object wp_confined_pointer which is used
        to interact with the confinement as well as receive updates about its
-       state. See the the description of wp_confined_pointer for further
+       state. See the description of wp_confined_pointer for further
        information.
       </description>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/client/protocols/shadow.xml 
new/kwayland-5.51.0/src/client/protocols/shadow.xml
--- old/kwayland-5.50.0/src/client/protocols/shadow.xml 2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/client/protocols/shadow.xml 2018-10-08 
10:15:59.000000000 +0200
@@ -72,7 +72,7 @@
       <request name="destroy" type="destructor" since="2">
           <description summary="Destroy the org_kde_kwin_shadow">
               Destroy the org_kde_kwin_shadow object. If the 
org_kde_kwin_shadow is
-              still set on a wl_surface the shadow will be immediatelly 
removed.
+              still set on a wl_surface the shadow will be immediately removed.
               Prefer to first call the request unset on the 
org_kde_kwin_shadow_manager and
               commit the wl_surface to apply the change.
           </description>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/client/protocols/text-input-unstable-v2.xml 
new/kwayland-5.51.0/src/client/protocols/text-input-unstable-v2.xml
--- old/kwayland-5.50.0/src/client/protocols/text-input-unstable-v2.xml 
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/client/protocols/text-input-unstable-v2.xml 
2018-10-08 10:15:59.000000000 +0200
@@ -381,8 +381,8 @@
        This event should be handled as part of a following commit_string
        or preedit_string event.
       </description>
-      <arg name="before_length" type="uint" summary="length of text before 
current cursor positon"/>
-      <arg name="after_length" type="uint" summary="length of text after 
current cursor positon"/>
+      <arg name="before_length" type="uint" summary="length of text before 
current cursor position"/>
+      <arg name="after_length" type="uint" summary="length of text after 
current cursor position"/>
     </event>
 
     <event name="modifiers_map">
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/client/xdgshell.h 
new/kwayland-5.51.0/src/client/xdgshell.h
--- old/kwayland-5.50.0/src/client/xdgshell.h   2018-09-01 00:24:35.000000000 
+0200
+++ new/kwayland-5.51.0/src/client/xdgshell.h   2018-10-08 10:15:59.000000000 
+0200
@@ -104,7 +104,7 @@
 
     /**
      * Specifies in what direction the popup should be positioned around the 
anchor
-     * i.e if the gravity is "bottom", then then the top of top of the poup 
will be at the anchor edge
+     * i.e if the gravity is "bottom", then then the top of top of the popup 
will be at the anchor edge
      * if the gravity is top, then the bottom of the popup will be at the 
anchor edge
      *
      */
@@ -128,7 +128,7 @@
      * Specifies how the compositor should position the popup if it does not 
fit in the requested position
      */
     Constraints constraints() const;
-    void setConstraints(Constraints constaints);
+    void setConstraints(Constraints constraints);
 
     /**
      * An additional offset that should be applied from the anchor.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/client/xdgshell_stable.cpp 
new/kwayland-5.51.0/src/client/xdgshell_stable.cpp
--- old/kwayland-5.50.0/src/client/xdgshell_stable.cpp  2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/client/xdgshell_stable.cpp  2018-10-08 
10:15:59.000000000 +0200
@@ -312,7 +312,7 @@
         s->q->setSize(s->pendingSize);
         s->pendingSize = QSize();
     }
-    s->pendingState = 0;
+    s->pendingState = nullptr;
 }
 
 void XdgTopLevelStable::Private::configureCallback(void *data, struct 
xdg_toplevel *xdg_toplevel, int32_t width, int32_t height, struct wl_array 
*state)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/client/xdgshell_v6.cpp 
new/kwayland-5.51.0/src/client/xdgshell_v6.cpp
--- old/kwayland-5.50.0/src/client/xdgshell_v6.cpp      2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/client/xdgshell_v6.cpp      2018-10-08 
10:15:59.000000000 +0200
@@ -297,7 +297,7 @@
         s->q->setSize(s->pendingSize);
         s->pendingSize = QSize();
     }
-    s->pendingState = 0;
+    s->pendingState = nullptr;
 }
 
 void XdgTopLevelUnstableV6::Private::configureCallback(void *data, struct 
zxdg_toplevel_v6 *xdg_toplevel, int32_t width, int32_t height, struct wl_array 
*state)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/appmenu_interface.h 
new/kwayland-5.51.0/src/server/appmenu_interface.h
--- old/kwayland-5.50.0/src/server/appmenu_interface.h  2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/appmenu_interface.h  2018-10-08 
10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_APPMENU_H
-#define KWAYLAND_SERVER_APPMENU_H
+#ifndef KWAYLAND_SERVER_APPMENU_INTERFACE_H
+#define KWAYLAND_SERVER_APPMENU_INTERFACE_H
 
 #include "global.h"
 #include "resource.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/datadevice_interface.cpp 
new/kwayland-5.51.0/src/server/datadevice_interface.cpp
--- old/kwayland-5.50.0/src/server/datadevice_interface.cpp     2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/datadevice_interface.cpp     2018-10-08 
10:15:59.000000000 +0200
@@ -100,8 +100,8 @@
 void DataDeviceInterface::Private::startDrag(DataSourceInterface *dataSource, 
SurfaceInterface *origin, SurfaceInterface *i, quint32 serial)
 {
     // TODO: allow touch
-    if (seat->hasImplicitPointerGrab(serial) && seat->focusedPointerSurface() 
!= origin) {
-        wl_resource_post_error(resource, 0, "Surface doesn't have pointer 
grab");
+    if (!seat->hasImplicitPointerGrab(serial) || seat->focusedPointerSurface() 
!= origin) {
+        // Surface doesn't have pointer grab.
         return;
     }
     // TODO: source is allowed to be null, handled client internally!
@@ -159,6 +159,10 @@
     if (!resource) {
         return nullptr;
     }
+    if (!source) {
+        // a data offer can only exist together with a source
+        return nullptr;
+    }
     Q_Q(DataDeviceInterface);
     DataOfferInterface *offer = new DataOfferInterface(source, q, resource);
     auto c = 
q->global()->display()->getConnection(wl_resource_get_client(resource));
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/idle_interface.h 
new/kwayland-5.51.0/src/server/idle_interface.h
--- old/kwayland-5.50.0/src/server/idle_interface.h     2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/idle_interface.h     2018-10-08 
10:15:59.000000000 +0200
@@ -75,7 +75,7 @@
     void inhibit();
 
     /**
-     * Unhibits the IdleInterface. The idle timeouts are only restarted if 
uninhibit has been
+     * Inhibits the IdleInterface. The idle timeouts are only restarted if 
uninhibit has been
      * called the same amount as inhibit.
      *
      * @see inhibit
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/idleinhibit_interface.h 
new/kwayland-5.51.0/src/server/idleinhibit_interface.h
--- old/kwayland-5.50.0/src/server/idleinhibit_interface.h      2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/idleinhibit_interface.h      2018-10-08 
10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_IDLEINHIBIT_H
-#define KWAYLAND_SERVER_IDLEINHIBIT_H
+#ifndef KWAYLAND_SERVER_IDLEINHIBIT_INTERFACE_H
+#define KWAYLAND_SERVER_IDLEINHIBIT_INTERFACE_H
 
 #include "global.h"
 #include "resource.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/idleinhibit_interface_p.h 
new/kwayland-5.51.0/src/server/idleinhibit_interface_p.h
--- old/kwayland-5.50.0/src/server/idleinhibit_interface_p.h    2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/idleinhibit_interface_p.h    2018-10-08 
10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_IDLEINHIBIT_P_H
-#define KWAYLAND_SERVER_IDLEINHIBIT_P_H
+#ifndef KWAYLAND_SERVER_IDLEINHIBIT_INTERFACE_P_H
+#define KWAYLAND_SERVER_IDLEINHIBIT_INTERFACE_P_H
 
 #include "idleinhibit_interface.h"
 #include "global_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/outputchangeset.h 
new/kwayland-5.51.0/src/server/outputchangeset.h
--- old/kwayland-5.50.0/src/server/outputchangeset.h    2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/outputchangeset.h    2018-10-08 
10:15:59.000000000 +0200
@@ -18,8 +18,8 @@
  * License along with this library.  If not, see 
<http://www.gnu.org/licenses/>.
  ****************************************************************************/
 
-#ifndef WAYLAND_SERVER_CHANGESET_H
-#define WAYLAND_SERVER_CHANGESET_H
+#ifndef WAYLAND_SERVER_OUTPUT_CHANGESET_H
+#define WAYLAND_SERVER_OUTPUT_CHANGESET_H
 
 #include <QObject>
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/server/outputconfiguration_interface.h 
new/kwayland-5.51.0/src/server/outputconfiguration_interface.h
--- old/kwayland-5.50.0/src/server/outputconfiguration_interface.h      
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/outputconfiguration_interface.h      
2018-10-08 10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 * 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 KWAYLAND_SERVER_OUTPUTCONFIGURATION_H
-#define KWAYLAND_SERVER_OUTPUTCONFIGURATION_H
+#ifndef KWAYLAND_SERVER_OUTPUTCONFIGURATION_INTERFACE_H
+#define KWAYLAND_SERVER_OUTPUTCONFIGURATION_INTERFACE_H
 
 #include "resource.h"
 #include "outputmanagement_interface.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/server/outputmanagement_interface.cpp 
new/kwayland-5.51.0/src/server/outputmanagement_interface.cpp
--- old/kwayland-5.50.0/src/server/outputmanagement_interface.cpp       
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/outputmanagement_interface.cpp       
2018-10-08 10:15:59.000000000 +0200
@@ -22,7 +22,6 @@
 #include "outputconfiguration_interface.h"
 #include "display.h"
 #include "global_p.h"
-#include "display.h"
 
 #include <wayland-server.h>
 #include "wayland-output-management-server-protocol.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/server/outputmanagement_interface.h 
new/kwayland-5.51.0/src/server/outputmanagement_interface.h
--- old/kwayland-5.50.0/src/server/outputmanagement_interface.h 2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/outputmanagement_interface.h 2018-10-08 
10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
  * 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 KWAYLAND_SERVER_OUTPUTMANAGEMENT_H
-#define KWAYLAND_SERVER_OUTPUTMANAGEMENT_H
+#ifndef KWAYLAND_SERVER_OUTPUTMANAGEMENT_INTERFACE_H
+#define KWAYLAND_SERVER_OUTPUTMANAGEMENT_INTERFACE_H
 
 #include "global.h"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/server/pointerconstraints_interface.h 
new/kwayland-5.51.0/src/server/pointerconstraints_interface.h
--- old/kwayland-5.50.0/src/server/pointerconstraints_interface.h       
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/pointerconstraints_interface.h       
2018-10-08 10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_POINTERCONSTRAINTS_H
-#define KWAYLAND_SERVER_POINTERCONSTRAINTS_H
+#ifndef KWAYLAND_SERVER_POINTERCONSTRAINTS_INTERFACE_H
+#define KWAYLAND_SERVER_POINTERCONSTRAINTS_INTERFACE_H
 
 #include "global.h"
 #include "resource.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/server/pointerconstraints_interface_p.h 
new/kwayland-5.51.0/src/server/pointerconstraints_interface_p.h
--- old/kwayland-5.50.0/src/server/pointerconstraints_interface_p.h     
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/pointerconstraints_interface_p.h     
2018-10-08 10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_POINTERCONSTRAINTS_P_H
-#define KWAYLAND_SERVER_POINTERCONSTRAINTS_P_H
+#ifndef KWAYLAND_SERVER_POINTERCONSTRAINTS_INTERFACE_P_H
+#define KWAYLAND_SERVER_POINTERCONSTRAINTS_INTERFACE_P_H
 #include "pointerconstraints_interface.h"
 #include "global_p.h"
 #include "resource_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/server/pointergestures_interface.h 
new/kwayland-5.51.0/src/server/pointergestures_interface.h
--- old/kwayland-5.50.0/src/server/pointergestures_interface.h  2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/pointergestures_interface.h  2018-10-08 
10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_POINTERGESTURES_H
-#define KWAYLAND_SERVER_POINTERGESTURES_H
+#ifndef KWAYLAND_SERVER_POINTERGESTURES_INTERFACE_H
+#define KWAYLAND_SERVER_POINTERGESTURES_INTERFACE_H
 
 #include "global.h"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/server/pointergestures_interface_p.h 
new/kwayland-5.51.0/src/server/pointergestures_interface_p.h
--- old/kwayland-5.50.0/src/server/pointergestures_interface_p.h        
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/pointergestures_interface_p.h        
2018-10-08 10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_POINTERGESTURES_P_H
-#define KWAYLAND_SERVER_POINTERGESTURES_P_H
+#ifndef KWAYLAND_SERVER_POINTERGESTURES_INTERFACE_P_H
+#define KWAYLAND_SERVER_POINTERGESTURES_INTERFACE_P_H
 
 #include "pointergestures_interface.h"
 #include "resource_p.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/server/relativepointer_interface.h 
new/kwayland-5.51.0/src/server/relativepointer_interface.h
--- old/kwayland-5.50.0/src/server/relativepointer_interface.h  2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/relativepointer_interface.h  2018-10-08 
10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_RELATIVE_POINTER_H
-#define KWAYLAND_SERVER_RELATIVE_POINTER_H
+#ifndef KWAYLAND_SERVER_RELATIVE_POINTER_INTERFACE_H
+#define KWAYLAND_SERVER_RELATIVE_POINTER_INTERFACE_H
 
 #include "global.h"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/server/remote_access_interface.cpp 
new/kwayland-5.51.0/src/server/remote_access_interface.cpp
--- old/kwayland-5.50.0/src/server/remote_access_interface.cpp  2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/remote_access_interface.cpp  2018-10-08 
10:15:59.000000000 +0200
@@ -17,9 +17,9 @@
 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 "output_interface.h"
 #include "remote_access_interface.h"
 #include "remote_access_interface_p.h"
+#include "output_interface.h"
 #include "display.h"
 #include "global_p.h"
 #include "resource_p.h"
@@ -204,13 +204,18 @@
 
         // clients don't necessarily bind outputs
         if (boundScreens.isEmpty()) {
-            return;
+            continue;
         }
 
         // no reason for client to bind wl_output multiple times, send only to 
first one
         org_kde_kwin_remote_access_manager_send_buffer_ready(res, buf->fd(), 
boundScreens[0]);
         holder.counter++;
     }
+    if (holder.counter == 0) {
+        // buffer was not requested by any client
+        emit q->bufferReleased(buf);
+        return;
+    }
     // store buffer locally, clients will ask it later
     sentBuffers[buf->fd()] = holder;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/remote_access_interface.h 
new/kwayland-5.51.0/src/server/remote_access_interface.h
--- old/kwayland-5.50.0/src/server/remote_access_interface.h    2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/remote_access_interface.h    2018-10-08 
10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_REMOTE_ACCESS_H
-#define KWAYLAND_SERVER_REMOTE_ACCESS_H
+#ifndef KWAYLAND_SERVER_REMOTE_ACCESS_INTERFACE_H
+#define KWAYLAND_SERVER_REMOTE_ACCESS_INTERFACE_H
 
 #include "global.h"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/server/remote_access_interface_p.h 
new/kwayland-5.51.0/src/server/remote_access_interface_p.h
--- old/kwayland-5.50.0/src/server/remote_access_interface_p.h  2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/remote_access_interface_p.h  2018-10-08 
10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_REMOTE_ACCESS_P_H
-#define KWAYLAND_SERVER_REMOTE_ACCESS_P_H
+#ifndef KWAYLAND_SERVER_REMOTE_ACCESS_INTERFACE_P_H
+#define KWAYLAND_SERVER_REMOTE_ACCESS_INTERFACE_P_H
 
 #include "resource.h"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/seat_interface.cpp 
new/kwayland-5.51.0/src/server/seat_interface.cpp
--- old/kwayland-5.50.0/src/server/seat_interface.cpp   2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/seat_interface.cpp   2018-10-08 
10:15:59.000000000 +0200
@@ -1332,7 +1332,7 @@
     } else if (id == 0 && focusedTouchSurface()) {
 #if HAVE_LINUX_INPUT_H
         const QPointF pos = globalPosition - d->touchInterface.focus.offset;
-        const bool result = 
forEachInterface<PointerInterface>(focusedTouchSurface(), d->pointers,
+        forEachInterface<PointerInterface>(focusedTouchSurface(), d->pointers,
             [this, pos, serial] (PointerInterface *p) {
                 wl_pointer_send_enter(p->resource(), serial,
                                 focusedTouchSurface()->resource(),
@@ -1344,9 +1344,6 @@
                 p->d_func()->sendFrame();
             }
         );
-        if (!result) {
-            return id;
-        }
 #endif
     }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/server/server_decoration_interface.h 
new/kwayland-5.51.0/src/server/server_decoration_interface.h
--- old/kwayland-5.50.0/src/server/server_decoration_interface.h        
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/server_decoration_interface.h        
2018-10-08 10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_SERVER_DECORATION_H
-#define KWAYLAND_SERVER_SERVER_DECORATION_H
+#ifndef KWAYLAND_SERVER_SERVER_DECORATION_INTERFACE_H
+#define KWAYLAND_SERVER_SERVER_DECORATION_INTERFACE_H
 
 #include "global.h"
 #include "resource.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/server/server_decoration_palette_interface.h 
new/kwayland-5.51.0/src/server/server_decoration_palette_interface.h
--- old/kwayland-5.50.0/src/server/server_decoration_palette_interface.h        
2018-09-01 00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/server_decoration_palette_interface.h        
2018-10-08 10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_DECORATION_PALETTE_H
-#define KWAYLAND_SERVER_DECORATION_PALETTE_H
+#ifndef KWAYLAND_SERVER_DECORATION_PALETTE_INTERFACE_H
+#define KWAYLAND_SERVER_DECORATION_PALETTE_INTERFACE_H
 
 #include "global.h"
 #include "resource.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/shell_interface.h 
new/kwayland-5.51.0/src/server/shell_interface.h
--- old/kwayland-5.50.0/src/server/shell_interface.h    2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/shell_interface.h    2018-10-08 
10:15:59.000000000 +0200
@@ -90,7 +90,7 @@
      **/
     Q_PROPERTY(QByteArray windowClass READ windowClass NOTIFY 
windowClassChanged)
     /**
-     * Whether the window is fullscren.
+     * Whether the window is fullscreen.
      **/
     Q_PROPERTY(bool fullscreen READ isFullscreen NOTIFY fullscreenChanged)
     /**
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/slide_interface.h 
new/kwayland-5.51.0/src/server/slide_interface.h
--- old/kwayland-5.50.0/src/server/slide_interface.h    2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/slide_interface.h    2018-10-08 
10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_SLIDE_H
-#define KWAYLAND_SERVER_SLIDE_H
+#ifndef KWAYLAND_SERVER_SLIDE_INTERFACE_H
+#define KWAYLAND_SERVER_SLIDE_INTERFACE_H
 
 #include "global.h"
 #include "resource.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/surface_interface.cpp 
new/kwayland-5.51.0/src/server/surface_interface.cpp
--- old/kwayland-5.50.0/src/server/surface_interface.cpp        2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/surface_interface.cpp        2018-10-08 
10:15:59.000000000 +0200
@@ -439,7 +439,7 @@
         emit q->transformChanged(target->transform);
     }
     if (bufferChanged && emitChanged) {
-        if (!target->damage.isEmpty()) {
+        if (target->buffer && !target->damage.isEmpty()) {
             const QRegion windowRegion = QRegion(0, 0, q->size().width(), 
q->size().height());
             if (!windowRegion.isEmpty()) {
                 target->damage = windowRegion.intersected(target->damage);
@@ -524,10 +524,6 @@
 
 void SurfaceInterface::Private::damage(const QRect &rect)
 {
-    if (!pending.bufferIsSet || (pending.bufferIsSet && !pending.buffer)) {
-        // TODO: should we send an error?
-        return;
-    }
     pending.damage = pending.damage.united(rect);
 }
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/textinput_interface.h 
new/kwayland-5.51.0/src/server/textinput_interface.h
--- old/kwayland-5.50.0/src/server/textinput_interface.h        2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/textinput_interface.h        2018-10-08 
10:15:59.000000000 +0200
@@ -329,8 +329,8 @@
      *
      * The Client processes this event together with the commit string
      *
-     * @param beforeLength length of text before current cursor positon.
-     * @param afterLength length of text after current cursor positon.
+     * @param beforeLength length of text before current cursor position.
+     * @param afterLength length of text after current cursor position.
      * @see commit
      **/
     void deleteSurroundingText(quint32 beforeLength, quint32 afterLength);
@@ -384,7 +384,7 @@
      **/
     void requestReset();
     /**
-     * Emitted whenever the preffered @p language changes.
+     * Emitted whenever the preferred @p language changes.
      * @see preferredLanguage
      **/
     void preferredLanguageChanged(const QByteArray &language);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/xdgforeign_interface.h 
new/kwayland-5.51.0/src/server/xdgforeign_interface.h
--- old/kwayland-5.50.0/src/server/xdgforeign_interface.h       2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/xdgforeign_interface.h       2018-10-08 
10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_XDGFOREIGN_H
-#define KWAYLAND_SERVER_XDGFOREIGN_H
+#ifndef KWAYLAND_SERVER_XDGFOREIGN_INTERFACE_H
+#define KWAYLAND_SERVER_XDGFOREIGN_INTERFACE_H
 
 #include "global.h"
 #include "resource.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-5.50.0/src/server/xdgforeign_v2_interface_p.h 
new/kwayland-5.51.0/src/server/xdgforeign_v2_interface_p.h
--- old/kwayland-5.50.0/src/server/xdgforeign_v2_interface_p.h  2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/xdgforeign_v2_interface_p.h  2018-10-08 
10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_XDGFOREIGNV2_P_H
-#define KWAYLAND_SERVER_XDGFOREIGNV2_P_H
+#ifndef KWAYLAND_SERVER_XDGFOREIGNV2_INTERFACE_P_H
+#define KWAYLAND_SERVER_XDGFOREIGNV2_INTERFACE_P_H
 
 #include "global.h"
 #include "resource.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/xdgoutput_interface.h 
new/kwayland-5.51.0/src/server/xdgoutput_interface.h
--- old/kwayland-5.50.0/src/server/xdgoutput_interface.h        2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/xdgoutput_interface.h        2018-10-08 
10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 KWAYLAND_SERVER_XDGOUTPUT_H
-#define KWAYLAND_SERVER_XDGOUTPUT_H
+#ifndef KWAYLAND_SERVER_XDGOUTPUT_INTERFACE_H
+#define KWAYLAND_SERVER_XDGOUTPUT_INTERFACE_H
 
 #include "global.h"
 #include "resource.h"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/src/server/xdgshell_interface.h 
new/kwayland-5.51.0/src/server/xdgshell_interface.h
--- old/kwayland-5.50.0/src/server/xdgshell_interface.h 2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/src/server/xdgshell_interface.h 2018-10-08 
10:15:59.000000000 +0200
@@ -334,7 +334,7 @@
     void transientForChanged();
 
     /**
-     * Emitted whenever the maximun size hint changes
+     * Emitted whenever the maximum size hint changes
      * @since 5.39
      */
     void maxSizeChanged(const QSize &size);
@@ -421,7 +421,7 @@
 
     /**
      * Specifies in what direction the popup should be positioned around the 
anchor
-     * i.e if the gravity is "bottom", then then the top of top of the poup 
will be at the anchor edge
+     * i.e if the gravity is "bottom", then then the top of top of the popup 
will be at the anchor edge
      * if the gravity is top, then the bottom of the popup will be at the 
anchor edge
      *
      * @since 5.39
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/tests/CMakeLists.txt 
new/kwayland-5.51.0/tests/CMakeLists.txt
--- old/kwayland-5.50.0/tests/CMakeLists.txt    2018-09-01 00:24:35.000000000 
+0200
+++ new/kwayland-5.51.0/tests/CMakeLists.txt    2018-10-08 10:15:59.000000000 
+0200
@@ -1,7 +1,7 @@
 include(ECMMarkAsTest)
 
 # find_package(Qt5Core ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENT Private 
_check_private)
-include_directories(${Qt5Core_PRIVATE_INCLUDE_DIRS})
+include_directories(SYSTEM ${Qt5Core_PRIVATE_INCLUDE_DIRS})
 set(testServer_SRCS
     waylandservertest.cpp
     )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/tests/dpmstest.cpp 
new/kwayland-5.51.0/tests/dpmstest.cpp
--- old/kwayland-5.50.0/tests/dpmstest.cpp      2018-09-01 00:24:35.000000000 
+0200
+++ new/kwayland-5.51.0/tests/dpmstest.cpp      2018-10-08 10:15:59.000000000 
+0200
@@ -129,7 +129,7 @@
             if (hasDpms) {
                 hasDpmsLabel->setText(QStringLiteral("Compositor provides a 
DpmsManager"));
             } else {
-                hasDpmsLabel->setText(QStringLiteral("Compositor does not 
provid a DpmsManager"));
+                hasDpmsLabel->setText(QStringLiteral("Compositor does not 
provide a DpmsManager"));
             }
 
             QVBoxLayout *layout = new QVBoxLayout;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/tests/qtwaylandintegrationtest.h 
new/kwayland-5.51.0/tests/qtwaylandintegrationtest.h
--- old/kwayland-5.50.0/tests/qtwaylandintegrationtest.h        2018-09-01 
00:24:35.000000000 +0200
+++ new/kwayland-5.51.0/tests/qtwaylandintegrationtest.h        2018-10-08 
10:15:59.000000000 +0200
@@ -17,8 +17,8 @@
 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 WAYLANDCLIENTTEST_H
-#define WAYLANDCLIENTTEST_H
+#ifndef QTWAYLANDINTEGRATIONTEST_H
+#define QTWAYLANDINTEGRATIONTEST_H
 
 #include <QObject>
 #include <QSize>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-5.50.0/tests/touchclienttest.h 
new/kwayland-5.51.0/tests/touchclienttest.h
--- old/kwayland-5.50.0/tests/touchclienttest.h 2018-09-01 00:24:35.000000000 
+0200
+++ new/kwayland-5.51.0/tests/touchclienttest.h 2018-10-08 10:15:59.000000000 
+0200
@@ -17,8 +17,8 @@
 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 WAYLANDCLIENTTEST_H
-#define WAYLANDCLIENTTEST_H
+#ifndef TOUCHCLIENTTEST_H
+#define TOUCHCLIENTTEST_H
 
 #include <QObject>
 #include <QSize>


Reply via email to