Hello community,

here is the log from the commit of package kwayland-integration for 
openSUSE:Factory checked in at 2019-07-26 12:31:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwayland-integration (Old)
 and      /work/SRC/openSUSE:Factory/.kwayland-integration.new.4126 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "kwayland-integration"

Fri Jul 26 12:31:43 2019 rev:69 rq:717048 version:5.16.3

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/kwayland-integration/kwayland-integration.changes    
    2019-06-27 16:21:14.706149307 +0200
+++ 
/work/SRC/openSUSE:Factory/.kwayland-integration.new.4126/kwayland-integration.changes
      2019-07-26 12:31:45.078244153 +0200
@@ -1,0 +2,10 @@
+Tue Jul  9 17:29:06 UTC 2019 - [email protected]
+
+- Update to 5.16.3
+  * New bugfix release
+  * For more details please see:
+  * https://www.kde.org/announcements/plasma-5.16.3.php
+- Changes since 5.16.2:
+  * Span wayland objects to lifespan of the QApplication (kde#372789)
+
+-------------------------------------------------------------------

Old:
----
  kwayland-integration-5.16.2.tar.xz
  kwayland-integration-5.16.2.tar.xz.sig

New:
----
  kwayland-integration-5.16.3.tar.xz
  kwayland-integration-5.16.3.tar.xz.sig

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

Other differences:
------------------
++++++ kwayland-integration.spec ++++++
--- /var/tmp/diff_new_pack.wi1ff7/_old  2019-07-26 12:31:46.118243623 +0200
+++ /var/tmp/diff_new_pack.wi1ff7/_new  2019-07-26 12:31:46.118243623 +0200
@@ -18,7 +18,7 @@
 
 %bcond_without lang
 Name:           kwayland-integration
-Version:        5.16.2
+Version:        5.16.3
 Release:        0
 # Full Plasma 5 version (e.g. 5.8.95)
 %{!?_plasma5_bugfix: %define _plasma5_bugfix %{version}}

++++++ kwayland-integration-5.16.2.tar.xz -> kwayland-integration-5.16.3.tar.xz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/kwayland-integration-5.16.2/CMakeLists.txt 
new/kwayland-integration-5.16.3/CMakeLists.txt
--- old/kwayland-integration-5.16.2/CMakeLists.txt      2019-06-25 
13:43:21.000000000 +0200
+++ new/kwayland-integration-5.16.3/CMakeLists.txt      2019-07-09 
17:44:26.000000000 +0200
@@ -1,5 +1,5 @@
 project(kwayland-integration)
-set(PROJECT_VERSION "5.16.2")
+set(PROJECT_VERSION "5.16.3")
 set(PROJECT_VERSION_MAJOR 5)
 
 cmake_minimum_required(VERSION 2.8.12 FATAL_ERROR)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-integration-5.16.2/src/windowsystem/waylandintegration.cpp 
new/kwayland-integration-5.16.3/src/windowsystem/waylandintegration.cpp
--- old/kwayland-integration-5.16.2/src/windowsystem/waylandintegration.cpp     
2019-06-25 13:43:21.000000000 +0200
+++ new/kwayland-integration-5.16.3/src/windowsystem/waylandintegration.cpp     
2019-07-09 17:44:26.000000000 +0200
@@ -62,37 +62,10 @@
         qCWarning(KWAYLAND_KWS) << "Failed getting Wayland connection from 
QPA";
         return;
     }
-    m_registry = new Registry(this);
+    m_registry = new Registry(qApp);
     m_registry->create(m_waylandConnection);
     m_waylandCompositor = Compositor::fromApplication(this);
 
-    //when the Qt QPA closes it deletes the wl_display
-    //closing wl_display deletes the wl_registry
-    //when we destroy the kwayland wrapper we double delete
-    //as we're a singleton we're not deleted till after qApp
-    //we want to release our wayland parts first
-    connect(qApp, &QCoreApplication::aboutToQuit, this, [=]() {
-        if (m_waylandBlurManager) {
-            m_waylandBlurManager->release();
-        }
-        if (m_waylandContrastManager) {
-           m_waylandContrastManager->release();
-        }
-        if (m_waylandSlideManager) {
-            m_waylandSlideManager->release();
-        }
-        if (m_waylandCompositor) {
-            m_waylandCompositor->release();
-        }
-        if (m_wm) {
-            m_wm->release();
-        }
-        if (m_waylandPlasmaShell) {
-            m_waylandPlasmaShell->release();
-        }
-        m_registry->release();
-    });
-
     m_registry->setup();
     m_waylandConnection->roundtrip();
 }
@@ -110,19 +83,18 @@
 
 KWayland::Client::BlurManager *WaylandIntegration::waylandBlurManager()
 {
-    if (!m_waylandBlurManager) {
+    if (!m_waylandBlurManager && m_registry) {
         const KWayland::Client::Registry::AnnouncedInterface wmInterface = 
m_registry->interface(KWayland::Client::Registry::Interface::Blur);
 
         if (wmInterface.name == 0) {
             return nullptr;
         }
 
-        m_waylandBlurManager = m_registry->createBlurManager(wmInterface.name, 
wmInterface.version, this);
+        m_waylandBlurManager = m_registry->createBlurManager(wmInterface.name, 
wmInterface.version, qApp);
 
         connect(m_waylandBlurManager, &KWayland::Client::BlurManager::removed, 
this,
             [this] () {
                 m_waylandBlurManager->deleteLater();
-                m_waylandBlurManager = nullptr;
             }
         );
     }
@@ -132,41 +104,38 @@
 
 KWayland::Client::ContrastManager *WaylandIntegration::waylandContrastManager()
 {
-    if (!m_waylandContrastManager) {
+    if (!m_waylandContrastManager && m_registry) {
         const KWayland::Client::Registry::AnnouncedInterface wmInterface = 
m_registry->interface(KWayland::Client::Registry::Interface::Contrast);
 
         if (wmInterface.name == 0) {
             return nullptr;
         }
 
-        m_waylandContrastManager = 
m_registry->createContrastManager(wmInterface.name, wmInterface.version, this);
+        m_waylandContrastManager = 
m_registry->createContrastManager(wmInterface.name, wmInterface.version, qApp);
 
         connect(m_waylandContrastManager, 
&KWayland::Client::ContrastManager::removed, this,
             [this] () {
                 m_waylandContrastManager->deleteLater();
-                m_waylandContrastManager = nullptr;
             }
         );
     }
-
     return m_waylandContrastManager;
 }
 
 KWayland::Client::SlideManager *WaylandIntegration::waylandSlideManager()
 {
-    if (!m_waylandSlideManager) {
+    if (!m_waylandSlideManager && m_registry) {
         const KWayland::Client::Registry::AnnouncedInterface wmInterface = 
m_registry->interface(KWayland::Client::Registry::Interface::Slide);
 
         if (wmInterface.name == 0) {
             return nullptr;
         }
 
-        m_waylandSlideManager = 
m_registry->createSlideManager(wmInterface.name, wmInterface.version, this);
+        m_waylandSlideManager = 
m_registry->createSlideManager(wmInterface.name, wmInterface.version, qApp);
 
         connect(m_waylandSlideManager, 
&KWayland::Client::SlideManager::removed, this,
             [this] () {
                 m_waylandSlideManager->deleteLater();
-                m_waylandSlideManager = nullptr;
             }
         );
     }
@@ -183,7 +152,7 @@
 {
     using namespace KWayland::Client;
 
-    if (!m_wm) {
+    if (!m_wm && m_registry) {
         const Registry::AnnouncedInterface wmInterface = 
m_registry->interface(Registry::Interface::PlasmaWindowManagement);
 
         if (wmInterface.name == 0) {
@@ -191,7 +160,7 @@
             return nullptr;
         }
 
-        m_wm = m_registry->createPlasmaWindowManagement(wmInterface.name, 
wmInterface.version, this);
+        m_wm = m_registry->createPlasmaWindowManagement(wmInterface.name, 
wmInterface.version, qApp);
         connect(m_wm, &PlasmaWindowManagement::windowCreated, this,
             [this] (PlasmaWindow *w) {
                 emit KWindowSystem::self()->windowAdded(w->internalId());
@@ -215,6 +184,12 @@
         );
         connect(m_wm, &PlasmaWindowManagement::showingDesktopChanged, 
KWindowSystem::self(), &KWindowSystem::showingDesktopChanged);
         qCDebug(KWAYLAND_KWS) << "Plasma Window Management interface bound";
+
+        connect(m_wm, &KWayland::Client::PlasmaWindowManagement::removed, this,
+            [this] () {
+                m_wm->deleteLater();
+            }
+        );
     }
 
     return m_wm;
@@ -222,14 +197,14 @@
 
 KWayland::Client::PlasmaShell *WaylandIntegration::waylandPlasmaShell()
 {
-    if (!m_waylandPlasmaShell) {
+    if (!m_waylandPlasmaShell && m_registry) {
         const KWayland::Client::Registry::AnnouncedInterface wmInterface = 
m_registry->interface(KWayland::Client::Registry::Interface::PlasmaShell);
 
         if (wmInterface.name == 0) {
             return nullptr;
         }
 
-        m_waylandPlasmaShell = m_registry->createPlasmaShell(wmInterface.name, 
wmInterface.version, this);
+        m_waylandPlasmaShell = m_registry->createPlasmaShell(wmInterface.name, 
wmInterface.version, qApp);
     }
     return m_waylandPlasmaShell;
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/kwayland-integration-5.16.2/src/windowsystem/waylandintegration.h 
new/kwayland-integration-5.16.3/src/windowsystem/waylandintegration.h
--- old/kwayland-integration-5.16.2/src/windowsystem/waylandintegration.h       
2019-06-25 13:43:21.000000000 +0200
+++ new/kwayland-integration-5.16.3/src/windowsystem/waylandintegration.h       
2019-07-09 17:44:26.000000000 +0200
@@ -22,6 +22,7 @@
 #define WAYLANDINTEGRATION_H
 #include <KWindowSystem/private/kwindoweffects_p.h>
 
+#include <QPointer>
 
 namespace KWayland
 {
@@ -56,14 +57,14 @@
     KWayland::Client::PlasmaShell *waylandPlasmaShell();
 
 private:
-    KWayland::Client::ConnectionThread *m_waylandConnection = nullptr;
-    KWayland::Client::BlurManager *m_waylandBlurManager = nullptr;
-    KWayland::Client::ContrastManager *m_waylandContrastManager = nullptr;
-    KWayland::Client::SlideManager *m_waylandSlideManager = nullptr;
-    KWayland::Client::Compositor *m_waylandCompositor = nullptr;
-    KWayland::Client::PlasmaWindowManagement *m_wm = nullptr;
-    KWayland::Client::PlasmaShell *m_waylandPlasmaShell = nullptr;
-    KWayland::Client::Registry *m_registry = nullptr;
+    QPointer<KWayland::Client::ConnectionThread> m_waylandConnection;
+    QPointer<KWayland::Client::Compositor> m_waylandCompositor;
+    QPointer<KWayland::Client::Registry> m_registry;
+    QPointer<KWayland::Client::BlurManager> m_waylandBlurManager;
+    QPointer<KWayland::Client::ContrastManager> m_waylandContrastManager;
+    QPointer<KWayland::Client::SlideManager> m_waylandSlideManager;
+    QPointer<KWayland::Client::PlasmaWindowManagement> m_wm;
+    QPointer<KWayland::Client::PlasmaShell> m_waylandPlasmaShell;
 };
 
 #endif



Reply via email to