Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package kwayland-integration for openSUSE:Factory checked in at 2022-02-07 23:37:01 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/kwayland-integration (Old) and /work/SRC/openSUSE:Factory/.kwayland-integration.new.1898 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwayland-integration" Mon Feb 7 23:37:01 2022 rev:114 rq:951880 version:5.24.0 Changes: -------- --- /work/SRC/openSUSE:Factory/kwayland-integration/kwayland-integration.changes 2022-01-11 21:14:17.156748504 +0100 +++ /work/SRC/openSUSE:Factory/.kwayland-integration.new.1898/kwayland-integration.changes 2022-02-07 23:37:15.162783958 +0100 @@ -1,0 +2,25 @@ +Sat Feb 5 19:50:57 UTC 2022 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to 5.24.0 + * New bugfix release + * For more details please see: + * https://kde.org/announcements/plasma/5/5.24.0 +- Changes since 5.23.90: + * Prevent double deletion of shmpools (kde#443706) + +------------------------------------------------------------------- +Thu Jan 13 20:30:13 UTC 2022 - Fabian Vogt <fab...@ritter-vogt.de> + +- Update to 5.23.90 + * New feature release + * For more details please see: + * https://kde.org/announcements/plasma/5/5.23.90 +- Changes since 5.23.5: + * logging.cpp is autogenerated + * Handle dynamic effect global changes + * Add FreeBSD CI + * Add Linux CI + * Add .kde-ci.yml + * fix: Kicker's sub-menus are covered up by Plasma panels (kde#378694) + +------------------------------------------------------------------- Old: ---- kwayland-integration-5.23.5.tar.xz kwayland-integration-5.23.5.tar.xz.sig New: ---- kwayland-integration-5.24.0.tar.xz kwayland-integration-5.24.0.tar.xz.sig ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ kwayland-integration.spec ++++++ --- /var/tmp/diff_new_pack.N187Lj/_old 2022-02-07 23:37:15.778779812 +0100 +++ /var/tmp/diff_new_pack.N187Lj/_new 2022-02-07 23:37:15.782779785 +0100 @@ -16,9 +16,9 @@ # -%bcond_without lang +%bcond_without released Name: kwayland-integration -Version: 5.23.5 +Version: 5.24.0 Release: 0 # Full Plasma 5 version (e.g. 5.8.95) %{!?_plasma5_bugfix: %define _plasma5_bugfix %{version}} @@ -28,9 +28,9 @@ License: LGPL-2.1-or-later Group: Development/Libraries/KDE URL: http://www.kde.org -Source: https://download.kde.org/stable/plasma/%{version}/kwayland-integration-%{version}.tar.xz -%if %{with lang} -Source1: https://download.kde.org/stable/plasma/%{version}/kwayland-integration-%{version}.tar.xz.sig +Source: kwayland-integration-%{version}.tar.xz +%if %{with released} +Source1: kwayland-integration-%{version}.tar.xz.sig Source2: plasma.keyring %endif BuildRequires: cmake >= 3.16 ++++++ kwayland-integration-5.23.5.tar.xz -> kwayland-integration-5.24.0.tar.xz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.23.5/.gitlab-ci.yml new/kwayland-integration-5.24.0/.gitlab-ci.yml --- old/kwayland-integration-5.23.5/.gitlab-ci.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/kwayland-integration-5.24.0/.gitlab-ci.yml 2022-02-03 15:33:38.000000000 +0100 @@ -0,0 +1,6 @@ +# SPDX-FileCopyrightText: None +# SPDX-License-Identifier: CC0-1.0 + +include: + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/linux.yml + - https://invent.kde.org/sysadmin/ci-utilities/raw/master/gitlab-templates/freebsd.yml diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.23.5/.kde-ci.yml new/kwayland-integration-5.24.0/.kde-ci.yml --- old/kwayland-integration-5.23.5/.kde-ci.yml 1970-01-01 01:00:00.000000000 +0100 +++ new/kwayland-integration-5.24.0/.kde-ci.yml 2022-02-03 15:33:38.000000000 +0100 @@ -0,0 +1,11 @@ +# SPDX-FileCopyrightText: None +# SPDX-License-Identifier: CC0-1.0 + +Dependencies: +- 'on': ['@all'] + 'require': + 'frameworks/extra-cmake-modules': '@latest' + 'frameworks/kguiaddons': '@latest' + 'frameworks/kidletime': '@latest' + 'frameworks/kwayland': '@latest' + 'frameworks/kwindowsystem': '@latest' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.23.5/CMakeLists.txt new/kwayland-integration-5.24.0/CMakeLists.txt --- old/kwayland-integration-5.23.5/CMakeLists.txt 2022-01-04 09:58:00.000000000 +0100 +++ new/kwayland-integration-5.24.0/CMakeLists.txt 2022-02-03 15:33:38.000000000 +0100 @@ -2,7 +2,7 @@ set(CMAKE_C_STANDARD 99) -set(PROJECT_VERSION "5.23.5") +set(PROJECT_VERSION "5.24.0") set(PROJECT_VERSION_MAJOR 5) cmake_minimum_required(VERSION 3.16) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.23.5/src/idletime/CMakeLists.txt new/kwayland-integration-5.24.0/src/idletime/CMakeLists.txt --- old/kwayland-integration-5.23.5/src/idletime/CMakeLists.txt 2022-01-04 09:58:00.000000000 +0100 +++ new/kwayland-integration-5.24.0/src/idletime/CMakeLists.txt 2022-02-03 15:33:38.000000000 +0100 @@ -1,5 +1,6 @@ set(idletime_plugin_SRCS poller.cpp + poller.h ) add_library(KF5IdleTimeKWaylandPlugin MODULE ${idletime_plugin_SRCS}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.23.5/src/kmodifierkeyinfoprovider/CMakeLists.txt new/kwayland-integration-5.24.0/src/kmodifierkeyinfoprovider/CMakeLists.txt --- old/kwayland-integration-5.23.5/src/kmodifierkeyinfoprovider/CMakeLists.txt 2022-01-04 09:58:00.000000000 +0100 +++ new/kwayland-integration-5.24.0/src/kmodifierkeyinfoprovider/CMakeLists.txt 2022-02-03 15:33:38.000000000 +0100 @@ -1,3 +1,3 @@ -add_library(kmodifierkey_wayland MODULE kmodifierkeyinfoprovider_wayland.cpp) +add_library(kmodifierkey_wayland MODULE kmodifierkeyinfoprovider_wayland.cpp kmodifierkeyinfoprovider_wayland.h) target_link_libraries(kmodifierkey_wayland PRIVATE KF5::WaylandClient KF5::GuiAddons) install(TARGETS kmodifierkey_wayland DESTINATION ${KDE_INSTALL_PLUGINDIR}/kf5/kguiaddons/kmodifierkey/) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.23.5/src/windowsystem/CMakeLists.txt new/kwayland-integration-5.24.0/src/windowsystem/CMakeLists.txt --- old/kwayland-integration-5.23.5/src/windowsystem/CMakeLists.txt 2022-01-04 09:58:00.000000000 +0100 +++ new/kwayland-integration-5.24.0/src/windowsystem/CMakeLists.txt 2022-02-03 15:33:38.000000000 +0100 @@ -1,5 +1,4 @@ set(wayland_plugin_SRCS - logging.cpp plugin.cpp waylandintegration.cpp windoweffects.cpp @@ -7,6 +6,13 @@ windowshadow.cpp windowsystem.cpp waylandxdgactivationv1.cpp + plugin.h + waylandintegration.h + windoweffects.h + windowinfo.h + windowshadow.h + windowsystem.h + waylandxdgactivationv1_p.h ) ecm_add_qtwayland_client_protocol(wayland_plugin_SRCS diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.23.5/src/windowsystem/waylandintegration.cpp new/kwayland-integration-5.24.0/src/windowsystem/waylandintegration.cpp --- old/kwayland-integration-5.23.5/src/windowsystem/waylandintegration.cpp 2022-01-04 09:58:00.000000000 +0100 +++ new/kwayland-integration-5.24.0/src/windowsystem/waylandintegration.cpp 2022-02-03 15:33:38.000000000 +0100 @@ -72,6 +72,11 @@ return &privateWaylandIntegrationSelf()->self; } +KWayland::Client::Registry *WaylandIntegration::registry() const +{ + return m_registry; +} + KWayland::Client::ConnectionThread *WaylandIntegration::waylandConnection() const { return m_waylandConnection; @@ -205,7 +210,7 @@ return nullptr; } - return m_registry->createShmPool(wmInterface.name, wmInterface.version, qApp); + return m_registry->createShmPool(wmInterface.name, wmInterface.version); } return nullptr; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.23.5/src/windowsystem/waylandintegration.h new/kwayland-integration-5.24.0/src/windowsystem/waylandintegration.h --- old/kwayland-integration-5.23.5/src/windowsystem/waylandintegration.h 2022-01-04 09:58:00.000000000 +0100 +++ new/kwayland-integration-5.24.0/src/windowsystem/waylandintegration.h 2022-02-03 15:33:38.000000000 +0100 @@ -38,6 +38,7 @@ static WaylandIntegration *self(); + KWayland::Client::Registry *registry() const; KWayland::Client::ConnectionThread *waylandConnection() const; KWayland::Client::BlurManager *waylandBlurManager(); KWayland::Client::ContrastManager *waylandContrastManager(); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.23.5/src/windowsystem/windoweffects.cpp new/kwayland-integration-5.24.0/src/windowsystem/windoweffects.cpp --- old/kwayland-integration-5.23.5/src/windowsystem/windoweffects.cpp 2022-01-04 09:58:00.000000000 +0100 +++ new/kwayland-integration-5.24.0/src/windowsystem/windoweffects.cpp 2022-02-03 15:33:38.000000000 +0100 @@ -28,6 +28,43 @@ : QObject() , KWindowEffectsPrivateV2() { + auto registry = WaylandIntegration::self()->registry(); + + // The KWindowEffects API doesn't provide any signals to notify that the particular + // effect has become unavailable. So we re-install effects when the corresponding globals + // are added. + connect(registry, &KWayland::Client::Registry::blurAnnounced, this, [this]() { + for (auto it = m_blurRegions.constBegin(); it != m_blurRegions.constEnd(); ++it) { + installBlur(it.key(), true, *it); + } + }); + connect(registry, &KWayland::Client::Registry::blurRemoved, this, [this]() { + for (auto it = m_blurRegions.constBegin(); it != m_blurRegions.constEnd(); ++it) { + installBlur(it.key(), false, *it); + } + }); + + connect(registry, &KWayland::Client::Registry::contrastAnnounced, this, [this]() { + for (auto it = m_backgroundConstrastRegions.constBegin(); it != m_backgroundConstrastRegions.constEnd(); ++it) { + installContrast(it.key(), true, it->contrast, it->intensity, it->saturation, it->region); + } + }); + connect(registry, &KWayland::Client::Registry::contrastRemoved, this, [this]() { + for (auto it = m_backgroundConstrastRegions.constBegin(); it != m_backgroundConstrastRegions.constEnd(); ++it) { + installContrast(it.key(), false); + } + }); + + connect(registry, &KWayland::Client::Registry::slideAnnounced, this, [this]() { + for (auto it = m_slideMap.constBegin(); it != m_slideMap.constEnd(); ++it) { + installSlide(it.key(), it->location, it->offset); + } + }); + connect(registry, &KWayland::Client::Registry::slideRemoved, this, [this]() { + for (auto it = m_slideMap.constBegin(); it != m_slideMap.constEnd(); ++it) { + installSlide(it.key(), KWindowEffects::SlideFromLocation::NoEdge, 0); + } + }); } WindowEffects::~WindowEffects() @@ -54,6 +91,7 @@ auto conn = connect(window, &QObject::destroyed, this, [this, window]() { m_blurRegions.remove(window); m_backgroundConstrastRegions.remove(window); + m_slideMap.remove(window); m_windowWatchers.remove(window); }); m_windowWatchers[window] = conn; @@ -62,7 +100,7 @@ void WindowEffects::releaseWindow(QWindow *window) { - if (!m_blurRegions.contains(window) && !m_backgroundConstrastRegions.contains(window)) { + if (!m_blurRegions.contains(window) && !m_backgroundConstrastRegions.contains(window) && !m_slideMap.contains(window)) { disconnect(m_windowWatchers[window]); window->removeEventFilter(this); m_windowWatchers.remove(window); @@ -86,13 +124,13 @@ { auto it = m_blurRegions.constFind(window); if (it != m_blurRegions.constEnd()) { - enableBlurBehind(window, true, *it); + installBlur(window, true, *it); } } { auto it = m_backgroundConstrastRegions.constFind(window); if (it != m_backgroundConstrastRegions.constEnd()) { - enableBackgroundContrast(window, true, it->contrast, it->intensity, it->saturation, it->region); + installContrast(window, true, it->contrast, it->intensity, it->saturation, it->region); } } } @@ -115,10 +153,30 @@ void WindowEffects::slideWindow(WId id, KWindowEffects::SlideFromLocation location, int offset) { + auto window = windowForId(id); + if (!window) { + return; + } + if (location != KWindowEffects::SlideFromLocation::NoEdge) { + m_slideMap[window] = SlideData{ + .location = location, + .offset = offset, + }; + trackWindow(window); + } else { + m_slideMap.remove(window); + releaseWindow(window); + } + + installSlide(window, location, offset); +} + +void WindowEffects::installSlide(QWindow *window, KWindowEffects::SlideFromLocation location, int offset) +{ if (!WaylandIntegration::self()->waylandSlideManager()) { return; } - KWayland::Client::Surface *surface = KWayland::Client::Surface::fromQtWinId(id); + KWayland::Client::Surface *surface = KWayland::Client::Surface::fromWindow(window); if (surface) { if (location != KWindowEffects::SlideFromLocation::NoEdge) { auto slide = WaylandIntegration::self()->waylandSlideManager()->createSlide(surface, surface); @@ -198,10 +256,10 @@ releaseWindow(window); } - enableBlurBehind(window, enable, region); + installBlur(window, enable, region); } -void WindowEffects::enableBlurBehind(QWindow *window, bool enable, const QRegion ®ion) +void WindowEffects::installBlur(QWindow *window, bool enable, const QRegion ®ion) { if (!WaylandIntegration::self()->waylandBlurManager()) { return; @@ -238,10 +296,10 @@ releaseWindow(window); } - enableBackgroundContrast(window, enable, contrast, intensity, saturation, region); + installContrast(window, enable, contrast, intensity, saturation, region); } -void WindowEffects::enableBackgroundContrast(QWindow *window, bool enable, qreal contrast, qreal intensity, qreal saturation, const QRegion ®ion) +void WindowEffects::installContrast(QWindow *window, bool enable, qreal contrast, qreal intensity, qreal saturation, const QRegion ®ion) { if (!WaylandIntegration::self()->waylandContrastManager()) { return; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/kwayland-integration-5.23.5/src/windowsystem/windoweffects.h new/kwayland-integration-5.24.0/src/windowsystem/windoweffects.h --- old/kwayland-integration-5.23.5/src/windowsystem/windoweffects.h 2022-01-04 09:58:00.000000000 +0100 +++ new/kwayland-integration-5.24.0/src/windowsystem/windoweffects.h 2022-02-03 15:33:38.000000000 +0100 @@ -46,24 +46,21 @@ void highlightWindows(WId controller, const QList<WId> &ids) override; #endif void enableBlurBehind(WId winId, bool enable = true, const QRegion ®ion = QRegion()) override; - void enableBlurBehind(QWindow *window, bool enable, const QRegion ®ion); void enableBackgroundContrast(WId winId, bool enable = true, qreal contrast = 1, qreal intensity = 1, qreal saturation = 1, const QRegion ®ion = QRegion()) override; - void enableBackgroundContrast(QWindow *window, - bool enable = true, - qreal contrast = 1, - qreal intensity = 1, - qreal saturation = 1, - const QRegion ®ion = QRegion()); void setBackgroundFrost(QWindow *window, QColor color, const QRegion ®ion = QRegion()) override; #if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(5, 67) void markAsDashboard(WId window) override; #endif private: + void installContrast(QWindow *window, bool enable = true, qreal contrast = 1, qreal intensity = 1, qreal saturation = 1, const QRegion ®ion = QRegion()); + void installBlur(QWindow *window, bool enable, const QRegion ®ion); + void installSlide(QWindow *window, KWindowEffects::SlideFromLocation location, int offset); + QHash<QWindow *, QMetaObject::Connection> m_windowWatchers; QHash<QWindow *, QRegion> m_blurRegions; struct BackgroundContrastData { @@ -73,6 +70,11 @@ QRegion region; }; QHash<QWindow *, BackgroundContrastData> m_backgroundConstrastRegions; + struct SlideData { + KWindowEffects::SlideFromLocation location; + int offset; + }; + QHash<QWindow *, SlideData> m_slideMap; }; #endif