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 2021-10-13 18:03:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/kwayland-integration (Old)
and /work/SRC/openSUSE:Factory/.kwayland-integration.new.2443 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "kwayland-integration"
Wed Oct 13 18:03:29 2021 rev:108 rq:924705 version:5.23.0
Changes:
--------
---
/work/SRC/openSUSE:Factory/kwayland-integration/kwayland-integration.changes
2021-09-04 22:33:11.975980053 +0200
+++
/work/SRC/openSUSE:Factory/.kwayland-integration.new.2443/kwayland-integration.changes
2021-10-13 18:05:26.975214685 +0200
@@ -1,0 +2,32 @@
+Thu Oct 7 13:50:07 UTC 2021 - Fabian Vogt <[email protected]>
+
+- Update to 5.23.0
+ * New bugfix release
+ * For more details please see:
+ * https://kde.org/announcements/plasma/5/5.23.0
+- No code changes since 5.22.90
+- Add new key + signature to plasma.keyring
+
+-------------------------------------------------------------------
+Thu Sep 16 13:04:52 UTC 2021 - Fabian Vogt <[email protected]>
+
+- Update to 5.22.90
+ * New feature release
+ * For more details please see:
+ * https://kde.org/announcements/plasma/5/5.22.90
+- Changes since 5.22.5:
+ * fix a dirty shadows (kde#439408)
+ * Implement setting frost
+ * Add pre-commit hook for clang-format
+ * Add .git-blame-ignore-revs file
+ * Run clang-format
+ * Explicitly set KDE_COMPILERSETTINGS_LEVEL
+ * Guard use of activation proxy (kde#440448)
+ * Fix compile with last ecm
+ * Fix build with GCC
+ * Be more explicit about types, hopefully fix CI builds
+ * Improve the behaviour when we are requesting without a window
+ * Also link against xkb and fix build
+ * Provide an implementation for the xdg_activation_v1 API
+
+-------------------------------------------------------------------
Old:
----
kwayland-integration-5.22.5.tar.xz
kwayland-integration-5.22.5.tar.xz.sig
New:
----
kwayland-integration-5.23.0.tar.xz
kwayland-integration-5.23.0.tar.xz.sig
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ kwayland-integration.spec ++++++
--- /var/tmp/diff_new_pack.o1zLa4/_old 2021-10-13 18:05:28.111216466 +0200
+++ /var/tmp/diff_new_pack.o1zLa4/_new 2021-10-13 18:05:28.111216466 +0200
@@ -18,7 +18,7 @@
%bcond_without lang
Name: kwayland-integration
-Version: 5.22.5
+Version: 5.23.0
Release: 0
# Full Plasma 5 version (e.g. 5.8.95)
%{!?_plasma5_bugfix: %define _plasma5_bugfix %{version}}
@@ -28,20 +28,27 @@
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
+Source: kwayland-integration-%{version}.tar.xz
%if %{with lang}
-Source1:
https://download.kde.org/stable/plasma/%{version}/kwayland-integration-%{version}.tar.xz.sig
+Source1: kwayland-integration-%{version}.tar.xz.sig
Source2: plasma.keyring
%endif
BuildRequires: cmake >= 3.16
BuildRequires: extra-cmake-modules >= 0.0.11
BuildRequires: kf5-filesystem
+BuildRequires: libQt5PlatformSupport-private-headers-devel
+BuildRequires: libqt5-qtwayland-private-headers-devel
+BuildRequires: pkgconfig
BuildRequires: cmake(KF5GuiAddons) >= 5.60.0
BuildRequires: cmake(KF5IdleTime) >= 5.24.0
BuildRequires: cmake(KF5Wayland) >= 5.24.0
BuildRequires: cmake(KF5WindowSystem) >= 5.24.0
BuildRequires: cmake(Qt5Core) >= 5.4.0
BuildRequires: cmake(Qt5Test) >= 5.4.0
+BuildRequires: cmake(Qt5WaylandClient)
+BuildRequires: cmake(Qt5XkbCommonSupport)
+BuildRequires: pkgconfig(wayland-protocols)
+BuildRequires: pkgconfig(xkbcommon)
%description
Provides integration plugins for various KDE frameworks for the wayland
windowing system.
++++++ kwayland-integration-5.22.5.tar.xz -> kwayland-integration-5.23.0.tar.xz
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwayland-integration-5.22.5/.git-blame-ignore-revs
new/kwayland-integration-5.23.0/.git-blame-ignore-revs
--- old/kwayland-integration-5.22.5/.git-blame-ignore-revs 1970-01-01
01:00:00.000000000 +0100
+++ new/kwayland-integration-5.23.0/.git-blame-ignore-revs 2021-10-07
13:38:18.000000000 +0200
@@ -0,0 +1 @@
+29029dd8e96606f86067be2a5e7a16bb11e52790
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwayland-integration-5.22.5/CMakeLists.txt
new/kwayland-integration-5.23.0/CMakeLists.txt
--- old/kwayland-integration-5.22.5/CMakeLists.txt 2021-08-31
13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/CMakeLists.txt 2021-10-07
13:38:18.000000000 +0200
@@ -1,10 +1,14 @@
project(kwayland-integration)
-set(PROJECT_VERSION "5.22.5")
+
+set(CMAKE_C_STANDARD 99)
+
+set(PROJECT_VERSION "5.23.0")
set(PROJECT_VERSION_MAJOR 5)
cmake_minimum_required(VERSION 3.16)
set(QT_MIN_VERSION "5.15.0")
set(KF5_MIN_VERSION "5.82")
+set(KDE_COMPILERSETTINGS_LEVEL "5.82")
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
@@ -20,6 +24,8 @@
find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS
Core
Widgets
+ WaylandClient
+ XkbCommonSupport # Needed by Qt5::WaylandClientPrivate
)
include(KDEInstallDirs)
@@ -27,24 +33,31 @@
include(KDECompilerSettings NO_POLICY_SCOPE)
include(ECMQtDeclareLoggingCategory)
include(KDEClangFormat)
+include(KDEGitCommitHooks)
# required frameworks
find_package(KF5 ${KF5_MIN_VERSION} REQUIRED COMPONENTS
IdleTime
WindowSystem
GuiAddons
+ Wayland
)
-find_package(KF5Wayland CONFIG REQUIRED)
+
+find_package(QtWaylandScanner REQUIRED)
+find_package(WaylandProtocols 1.21 REQUIRED)
+find_package(Wayland 1.15 COMPONENTS Client)
+find_package(PkgConfig REQUIRED)
#add_definitions(-DQT_DISABLE_DEPRECATED_BEFORE=0x060000)
add_subdirectory(src)
if(BUILD_TESTING)
add_subdirectory(autotests)
-endif()
+endif()
# add clang-format target for all our real source files
file(GLOB_RECURSE ALL_CLANG_FORMAT_SOURCE_FILES *.cpp *.h)
kde_clang_format(${ALL_CLANG_FORMAT_SOURCE_FILES})
+kde_configure_git_pre_commit_hook(CHECKS CLANG_FORMAT)
feature_summary(WHAT ALL INCLUDE_QUIET_PACKAGES
FATAL_ON_MISSING_REQUIRED_PACKAGES)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/autotests/idletime/idle_test.cpp
new/kwayland-integration-5.23.0/autotests/idletime/idle_test.cpp
--- old/kwayland-integration-5.22.5/autotests/idletime/idle_test.cpp
2021-08-31 13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/autotests/idletime/idle_test.cpp
2021-10-07 13:38:18.000000000 +0200
@@ -4,13 +4,13 @@
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR
LicenseRef-KDE-Accepted-LGPL
*/
// Qt
-#include <QtTest>
#include <QSignalSpy>
+#include <QtTest>
// Frameworks
#include <KIdleTime>
#include <KWayland/Client/connection_thread.h>
-#include <KWayland/Client/registry.h>
#include <KWayland/Client/fakeinput.h>
+#include <KWayland/Client/registry.h>
using namespace KWayland::Client;
@@ -72,7 +72,7 @@
QVERIFY(KIdleTime::instance()->idleTimeouts().isEmpty());
QSignalSpy timeout1Spy(KIdleTime::instance(), SIGNAL(timeoutReached(int)));
QVERIFY(timeout1Spy.isValid());
- QSignalSpy timeout2Spy(KIdleTime::instance(),
SIGNAL(timeoutReached(int,int)));
+ QSignalSpy timeout2Spy(KIdleTime::instance(), SIGNAL(timeoutReached(int,
int)));
QVERIFY(timeout2Spy.isValid());
const auto id = KIdleTime::instance()->addIdleTimeout(6000);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwayland-integration-5.22.5/src/idletime/poller.cpp
new/kwayland-integration-5.23.0/src/idletime/poller.cpp
--- old/kwayland-integration-5.22.5/src/idletime/poller.cpp 2021-08-31
13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/idletime/poller.cpp 2021-10-07
13:38:18.000000000 +0200
@@ -10,8 +10,8 @@
#include <KWayland/Client/registry.h>
#include <KWayland/Client/seat.h>
-#include <QGuiApplication>
#include <QDebug>
+#include <QGuiApplication>
#include <QLoggingCategory>
#include <QMutex>
#include <QMutexLocker>
@@ -41,11 +41,14 @@
}
// need to be able to cleanup prior to the Wayland connection being
destroyed
// otherwise we get a crash in libwayland
- connect(reinterpret_cast<QObject*>(qApp->platformNativeInterface()),
&QObject::destroyed, this, &Poller::unloadPoller);
+ connect(reinterpret_cast<QObject *>(qApp->platformNativeInterface()),
&QObject::destroyed, this, &Poller::unloadPoller);
m_registry = new Registry(this);
m_registry->create(m_connectionThread);
- connect(m_registry, &Registry::seatAnnounced, this,
- [this] (quint32 name, quint32 version) {
+ connect(
+ m_registry,
+ &Registry::seatAnnounced,
+ this,
+ [this](quint32 name, quint32 version) {
QMutexLocker locker(m_registryMutex.data());
if (m_seat.name != 0) {
// already have a seat
@@ -53,10 +56,13 @@
}
m_seat.name = name;
m_seat.version = version;
- }, Qt::DirectConnection
- );
- connect(m_registry, &Registry::idleAnnounced, this,
- [this] (quint32 name, quint32 version) {
+ },
+ Qt::DirectConnection);
+ connect(
+ m_registry,
+ &Registry::idleAnnounced,
+ this,
+ [this](quint32 name, quint32 version) {
QMutexLocker locker(m_registryMutex.data());
if (m_idle.name != 0) {
// already have a seat
@@ -64,16 +70,19 @@
}
m_idle.name = name;
m_idle.version = version;
- }, Qt::DirectConnection
- );
- connect(m_registry, &Registry::interfacesAnnounced, this,
+ },
+ Qt::DirectConnection);
+ connect(
+ m_registry,
+ &Registry::interfacesAnnounced,
+ this,
[this] {
m_registryMutex->lock();
m_inited = true;
m_registryMutex->unlock();
m_registryAnnouncedCondition->wakeAll();
- }, Qt::DirectConnection
- );
+ },
+ Qt::DirectConnection);
m_registry->setup();
m_connectionThread->roundtrip();
@@ -134,11 +143,9 @@
}
auto timeout = m_idle.idle->getTimeout(nextTimeout, m_seat.seat, this);
m_timeouts.insert(nextTimeout, timeout);
- connect(timeout, &KWayland::Client::IdleTimeout::idle, this,
- [this, nextTimeout] {
- Q_EMIT timeoutReached(nextTimeout);
- }
- );
+ connect(timeout, &KWayland::Client::IdleTimeout::idle, this, [this,
nextTimeout] {
+ Q_EMIT timeoutReached(nextTimeout);
+ });
connect(timeout, &KWayland::Client::IdleTimeout::resumeFromIdle, this,
&Poller::resumingFromIdle);
}
@@ -152,7 +159,7 @@
m_timeouts.erase(it);
}
-QList< int > Poller::timeouts() const
+QList<int> Poller::timeouts() const
{
return QList<int>();
}
@@ -167,12 +174,10 @@
return;
}
m_catchResumeTimeout = m_idle.idle->getTimeout(0, m_seat.seat, this);
- connect(m_catchResumeTimeout,
&KWayland::Client::IdleTimeout::resumeFromIdle, this,
- [this] {
- stopCatchingIdleEvents();
- Q_EMIT resumingFromIdle();
- }
- );
+ connect(m_catchResumeTimeout,
&KWayland::Client::IdleTimeout::resumeFromIdle, this, [this] {
+ stopCatchingIdleEvents();
+ Q_EMIT resumingFromIdle();
+ });
}
void Poller::stopCatchingIdleEvents()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/kwayland-integration-5.22.5/src/idletime/poller.h
new/kwayland-integration-5.23.0/src/idletime/poller.h
--- old/kwayland-integration-5.22.5/src/idletime/poller.h 2021-08-31
13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/idletime/poller.h 2021-10-07
13:38:18.000000000 +0200
@@ -66,7 +66,7 @@
KWayland::Client::ConnectionThread *m_connectionThread = nullptr;
KWayland::Client::Registry *m_registry = nullptr;
KWayland::Client::IdleTimeout *m_catchResumeTimeout = nullptr;
- QHash<int, KWayland::Client::IdleTimeout*> m_timeouts;
+ QHash<int, KWayland::Client::IdleTimeout *> m_timeouts;
};
#endif /* XSYNCBASEDPOLLER_H */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/kmodifierkeyinfoprovider/kmodifierkeyinfoprovider_wayland.cpp
new/kwayland-integration-5.23.0/src/kmodifierkeyinfoprovider/kmodifierkeyinfoprovider_wayland.cpp
---
old/kwayland-integration-5.22.5/src/kmodifierkeyinfoprovider/kmodifierkeyinfoprovider_wayland.cpp
2021-08-31 13:40:16.000000000 +0200
+++
new/kwayland-integration-5.23.0/src/kmodifierkeyinfoprovider/kmodifierkeyinfoprovider_wayland.cpp
2021-10-07 13:38:18.000000000 +0200
@@ -5,8 +5,8 @@
*/
#include "kmodifierkeyinfoprovider_wayland.h"
-#include <KWayland/Client/registry.h>
#include <KWayland/Client/connection_thread.h>
+#include <KWayland/Client/registry.h>
#include <QDebug>
#include <QTimer>
@@ -49,13 +49,13 @@
KModifierKeyInfoProvider::ModifierState toState(Keystate::State state)
{
- switch(state) {
- case Keystate::State::Unlocked:
- return KModifierKeyInfoProvider::Nothing;
- case Keystate::State::Latched:
- return KModifierKeyInfoProvider::Latched;
- case Keystate::State::Locked:
- return KModifierKeyInfoProvider::Locked;
+ switch (state) {
+ case Keystate::State::Unlocked:
+ return KModifierKeyInfoProvider::Nothing;
+ case Keystate::State::Latched:
+ return KModifierKeyInfoProvider::Latched;
+ case Keystate::State::Locked:
+ return KModifierKeyInfoProvider::Locked;
}
Q_UNREACHABLE();
return KModifierKeyInfoProvider::Nothing;
@@ -63,13 +63,13 @@
Qt::Key toKey(Keystate::Key key)
{
- switch(key) {
- case Keystate::Key::CapsLock:
- return Qt::Key_CapsLock;
- case Keystate::Key::NumLock:
- return Qt::Key_NumLock;
- case Keystate::Key::ScrollLock:
- return Qt::Key_ScrollLock;
+ switch (key) {
+ case Keystate::Key::CapsLock:
+ return Qt::Key_CapsLock;
+ case Keystate::Key::NumLock:
+ return Qt::Key_NumLock;
+ case Keystate::Key::ScrollLock:
+ return Qt::Key_ScrollLock;
}
Q_UNREACHABLE();
return {};
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/kmodifierkeyinfoprovider/kmodifierkeyinfoprovider_wayland.h
new/kwayland-integration-5.23.0/src/kmodifierkeyinfoprovider/kmodifierkeyinfoprovider_wayland.h
---
old/kwayland-integration-5.22.5/src/kmodifierkeyinfoprovider/kmodifierkeyinfoprovider_wayland.h
2021-08-31 13:40:16.000000000 +0200
+++
new/kwayland-integration-5.23.0/src/kmodifierkeyinfoprovider/kmodifierkeyinfoprovider_wayland.h
2021-10-07 13:38:18.000000000 +0200
@@ -7,14 +7,14 @@
#ifndef KMODIFIERKEYINFOPROVIDERWAYLAND_H
#define KMODIFIERKEYINFOPROVIDERWAYLAND_H
-#include <kmodifierkeyinfoprovider_p.h>
#include <KWayland/Client/keystate.h>
#include <QPointer>
+#include <kmodifierkeyinfoprovider_p.h>
class KModifierKeyInfoProviderWayland : public KModifierKeyInfoProvider
{
-Q_OBJECT
-Q_PLUGIN_METADATA(IID "org.kde.kguiaddons.KModifierKeyInfoProvider.Wayland")
+ Q_OBJECT
+ Q_PLUGIN_METADATA(IID
"org.kde.kguiaddons.KModifierKeyInfoProvider.Wayland")
public:
KModifierKeyInfoProviderWayland();
~KModifierKeyInfoProviderWayland();
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/CMakeLists.txt
new/kwayland-integration-5.23.0/src/windowsystem/CMakeLists.txt
--- old/kwayland-integration-5.22.5/src/windowsystem/CMakeLists.txt
2021-08-31 13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/windowsystem/CMakeLists.txt
2021-10-07 13:38:18.000000000 +0200
@@ -6,17 +6,29 @@
windowinfo.cpp
windowshadow.cpp
windowsystem.cpp
+ waylandxdgactivationv1.cpp
+)
+
+ecm_add_qtwayland_client_protocol(wayland_plugin_SRCS
+ PROTOCOL
${WaylandProtocols_DATADIR}/staging/xdg-activation/xdg-activation-v1.xml
+ BASENAME xdg-activation-v1
)
ecm_qt_declare_logging_category(wayland_plugin_SRCS HEADER logging.h
IDENTIFIER KWAYLAND_KWS
CATEGORY_NAME org.kde.kf5.kwindowsystem.kwayland DEFAULT_SEVERITY Warning
DESCRIPTION "wayland integration (windowsystem)" EXPORT KWAYLAND)
+pkg_check_modules(XKBCommon REQUIRED IMPORTED_TARGET xkbcommon)
add_library(KF5WindowSystemKWaylandPlugin MODULE ${wayland_plugin_SRCS})
target_link_libraries(KF5WindowSystemKWaylandPlugin
KF5::WindowSystem
KF5::WaylandClient
Qt::Widgets
+ Wayland::Client
+ Qt::WaylandClient
+ Qt::WaylandClientPrivate
+ Qt::XkbCommonSupportPrivate
+ PkgConfig::XKBCommon
)
install(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/plugin.cpp
new/kwayland-integration-5.23.0/src/windowsystem/plugin.cpp
--- old/kwayland-integration-5.22.5/src/windowsystem/plugin.cpp 2021-08-31
13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/windowsystem/plugin.cpp 2021-10-07
13:38:18.000000000 +0200
@@ -4,10 +4,10 @@
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR
LicenseRef-KDE-Accepted-LGPL
*/
#include "plugin.h"
-#include "windowshadow.h"
-#include "windowsystem.h"
#include "windoweffects.h"
#include "windowinfo.h"
+#include "windowshadow.h"
+#include "windowsystem.h"
KWaylandPlugin::KWaylandPlugin(QObject *parent)
: KWindowSystemPluginInterface(parent)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/waylandintegration.cpp
new/kwayland-integration-5.23.0/src/windowsystem/waylandintegration.cpp
--- old/kwayland-integration-5.22.5/src/windowsystem/waylandintegration.cpp
2021-08-31 13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/windowsystem/waylandintegration.cpp
2021-10-07 13:38:18.000000000 +0200
@@ -9,21 +9,22 @@
#include "waylandintegration.h"
#include "logging.h"
-#include <KWayland/Client/connection_thread.h>
-#include <KWayland/Client/registry.h>
-#include <KWayland/Client/compositor.h>
-#include <KWayland/Client/plasmawindowmanagement.h>
-#include <KWayland/Client/plasmashell.h>
-#include <KWayland/Client/surface.h>
#include <KWayland/Client/blur.h>
+#include <KWayland/Client/compositor.h>
+#include <KWayland/Client/connection_thread.h>
#include <KWayland/Client/contrast.h>
+#include <KWayland/Client/plasmashell.h>
+#include <KWayland/Client/plasmawindowmanagement.h>
#include <KWayland/Client/region.h>
-#include <KWayland/Client/slide.h>
+#include <KWayland/Client/registry.h>
#include <KWayland/Client/shadow.h>
#include <KWayland/Client/shm_pool.h>
+#include <KWayland/Client/slide.h>
+#include <KWayland/Client/surface.h>
#include <KWindowSystem/KWindowSystem>
+#include "waylandxdgactivationv1_p.h"
#include <QGuiApplication>
class WaylandIntegrationSingleton
@@ -41,7 +42,8 @@
}
WaylandIntegration::~WaylandIntegration()
-{}
+{
+}
void WaylandIntegration::setupKWaylandIntegration()
{
@@ -52,6 +54,12 @@
return;
}
m_registry = new Registry(qApp);
+ connect(m_registry, &KWayland::Client::Registry::interfaceAnnounced, this,
[this](const QByteArray &interfaceName, quint32 name, quint32 version) {
+ if (interfaceName != xdg_activation_v1_interface.name)
+ return;
+
+ m_activationInterface = {name, version};
+ });
m_registry->create(m_waylandConnection);
m_waylandCompositor = Compositor::fromApplication(this);
@@ -64,7 +72,6 @@
return &privateWaylandIntegrationSelf()->self;
}
-
KWayland::Client::ConnectionThread *WaylandIntegration::waylandConnection()
const
{
return m_waylandConnection;
@@ -81,11 +88,9 @@
m_waylandBlurManager = m_registry->createBlurManager(wmInterface.name,
wmInterface.version, qApp);
- connect(m_waylandBlurManager, &KWayland::Client::BlurManager::removed,
this,
- [this] () {
- m_waylandBlurManager->deleteLater();
- }
- );
+ connect(m_waylandBlurManager, &KWayland::Client::BlurManager::removed,
this, [this]() {
+ m_waylandBlurManager->deleteLater();
+ });
}
return m_waylandBlurManager;
@@ -102,11 +107,9 @@
m_waylandContrastManager =
m_registry->createContrastManager(wmInterface.name, wmInterface.version, qApp);
- connect(m_waylandContrastManager,
&KWayland::Client::ContrastManager::removed, this,
- [this] () {
- m_waylandContrastManager->deleteLater();
- }
- );
+ connect(m_waylandContrastManager,
&KWayland::Client::ContrastManager::removed, this, [this]() {
+ m_waylandContrastManager->deleteLater();
+ });
}
return m_waylandContrastManager;
}
@@ -122,11 +125,9 @@
m_waylandSlideManager =
m_registry->createSlideManager(wmInterface.name, wmInterface.version, qApp);
- connect(m_waylandSlideManager,
&KWayland::Client::SlideManager::removed, this,
- [this] () {
- m_waylandSlideManager->deleteLater();
- }
- );
+ connect(m_waylandSlideManager,
&KWayland::Client::SlideManager::removed, this, [this]() {
+ m_waylandSlideManager->deleteLater();
+ });
}
return m_waylandSlideManager;
@@ -144,11 +145,9 @@
m_waylandShadowManager =
m_registry->createShadowManager(wmInterface.name, wmInterface.version, qApp);
- connect(m_waylandShadowManager,
&KWayland::Client::ShadowManager::removed, this,
- [this] () {
- m_waylandShadowManager->deleteLater();
- }
- );
+ connect(m_waylandShadowManager,
&KWayland::Client::ShadowManager::removed, this, [this]() {
+ m_waylandShadowManager->deleteLater();
+ });
}
return m_waylandShadowManager;
@@ -175,11 +174,9 @@
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();
- }
- );
+ connect(m_wm, &KWayland::Client::PlasmaWindowManagement::removed,
this, [this]() {
+ m_wm->deleteLater();
+ });
}
return m_wm;
@@ -199,23 +196,25 @@
return m_waylandPlasmaShell;
}
-KWayland::Client::ShmPool *WaylandIntegration::waylandShmPool()
+KWayland::Client::ShmPool *WaylandIntegration::createShmPool()
{
- if (!m_waylandShmPool && m_registry) {
+ if (m_registry) {
const KWayland::Client::Registry::AnnouncedInterface wmInterface =
m_registry->interface(KWayland::Client::Registry::Interface::Shm);
if (wmInterface.name == 0) {
return nullptr;
}
- m_waylandShmPool = m_registry->createShmPool(wmInterface.name,
wmInterface.version, qApp);
-
- connect(m_waylandShmPool, &KWayland::Client::ShmPool::removed, this,
- [this] () {
- m_waylandShmPool->deleteLater();
- }
- );
+ return m_registry->createShmPool(wmInterface.name,
wmInterface.version, qApp);
}
- return m_waylandShmPool;
+ return nullptr;
+}
+
+WaylandXdgActivationV1 *WaylandIntegration::activation()
+{
+ if (!m_activation && m_registry && m_activationInterface.name) {
+ m_activation = new WaylandXdgActivationV1(*m_registry,
m_activationInterface.name, m_activationInterface.version);
+ }
+ return m_activation;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/waylandintegration.h
new/kwayland-integration-5.23.0/src/windowsystem/waylandintegration.h
--- old/kwayland-integration-5.22.5/src/windowsystem/waylandintegration.h
2021-08-31 13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/windowsystem/waylandintegration.h
2021-10-07 13:38:18.000000000 +0200
@@ -13,20 +13,21 @@
namespace KWayland
{
- namespace Client
- {
- class BlurManager;
- class ContrastManager;
- class Compositor;
- class ConnectionThread;
- class PlasmaWindowManagement;
- class PlasmaShell;
- class Registry;
- class ShadowManager;
- class ShmPool;
- class SlideManager;
- }
+namespace Client
+{
+class BlurManager;
+class ContrastManager;
+class Compositor;
+class ConnectionThread;
+class PlasmaWindowManagement;
+class PlasmaShell;
+class Registry;
+class ShadowManager;
+class ShmPool;
+class SlideManager;
+}
}
+class WaylandXdgActivationV1;
class WaylandIntegration : public QObject
{
@@ -45,7 +46,8 @@
KWayland::Client::Compositor *waylandCompositor() const;
KWayland::Client::PlasmaWindowManagement *plasmaWindowManagement();
KWayland::Client::PlasmaShell *waylandPlasmaShell();
- KWayland::Client::ShmPool *waylandShmPool();
+ KWayland::Client::ShmPool *createShmPool();
+ WaylandXdgActivationV1 *activation();
private:
QPointer<KWayland::Client::ConnectionThread> m_waylandConnection;
@@ -57,7 +59,11 @@
QPointer<KWayland::Client::ShadowManager> m_waylandShadowManager;
QPointer<KWayland::Client::PlasmaWindowManagement> m_wm;
QPointer<KWayland::Client::PlasmaShell> m_waylandPlasmaShell;
- QPointer<KWayland::Client::ShmPool> m_waylandShmPool;
+ QPointer<WaylandXdgActivationV1> m_activation;
+ struct {
+ quint32 name = 0;
+ quint32 version = 0;
+ } m_activationInterface;
};
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/waylandxdgactivationv1.cpp
new/kwayland-integration-5.23.0/src/windowsystem/waylandxdgactivationv1.cpp
--- old/kwayland-integration-5.22.5/src/windowsystem/waylandxdgactivationv1.cpp
1970-01-01 01:00:00.000000000 +0100
+++ new/kwayland-integration-5.23.0/src/windowsystem/waylandxdgactivationv1.cpp
2021-10-07 13:38:18.000000000 +0200
@@ -0,0 +1,37 @@
+/*
+ SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez <[email protected]>
+
+ SPDX-License-Identifier: LGPL-2.0-or-later
+*/
+
+#include "waylandxdgactivationv1_p.h"
+
+WaylandXdgActivationV1::WaylandXdgActivationV1(wl_registry *registry, uint32_t
id, uint32_t availableVersion)
+ : QtWayland::xdg_activation_v1(registry, id, qMin(availableVersion, 1u))
+{
+}
+
+WaylandXdgActivationV1::~WaylandXdgActivationV1()
+{
+ Q_ASSERT(isInitialized());
+ destroy();
+}
+
+WaylandXdgActivationTokenV1 *
+WaylandXdgActivationV1::requestXdgActivationToken(wl_seat *seat, struct
::wl_surface *surface, uint32_t serial, const QString &app_id)
+{
+ auto wl = get_activation_token();
+ auto provider = new WaylandXdgActivationTokenV1;
+ provider->init(wl);
+
+ if (surface)
+ provider->set_surface(surface);
+
+ if (!app_id.isEmpty())
+ provider->set_app_id(app_id);
+
+ if (seat)
+ provider->set_serial(serial, seat);
+ provider->commit();
+ return provider;
+}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/waylandxdgactivationv1_p.h
new/kwayland-integration-5.23.0/src/windowsystem/waylandxdgactivationv1_p.h
--- old/kwayland-integration-5.22.5/src/windowsystem/waylandxdgactivationv1_p.h
1970-01-01 01:00:00.000000000 +0100
+++ new/kwayland-integration-5.23.0/src/windowsystem/waylandxdgactivationv1_p.h
2021-10-07 13:38:18.000000000 +0200
@@ -0,0 +1,38 @@
+/*
+ SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez <[email protected]>
+
+ SPDX-License-Identifier: LGPL-2.0-or-later
+*/
+
+#ifndef WAYLANDXDGACTIVATIONV1_P_H
+#define WAYLANDXDGACTIVATIONV1_P_H
+
+#include "qwayland-xdg-activation-v1.h"
+#include <QObject>
+
+class QWaylandSurface;
+
+class WaylandXdgActivationTokenV1 : public QObject, public
QtWayland::xdg_activation_token_v1
+{
+ Q_OBJECT
+public:
+ void xdg_activation_token_v1_done(const QString &token) override
+ {
+ Q_EMIT done(token);
+ }
+
+Q_SIGNALS:
+ void failed();
+ void done(const QString &token);
+};
+
+class WaylandXdgActivationV1 : public QObject, public
QtWayland::xdg_activation_v1
+{
+public:
+ WaylandXdgActivationV1(struct ::wl_registry *registry, uint32_t id,
uint32_t availableVersion);
+ ~WaylandXdgActivationV1() override;
+
+ WaylandXdgActivationTokenV1 *requestXdgActivationToken(wl_seat *seat,
struct ::wl_surface *surface, uint32_t serial, const QString &app_id);
+};
+
+#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/windoweffects.cpp
new/kwayland-integration-5.23.0/src/windowsystem/windoweffects.cpp
--- old/kwayland-integration-5.22.5/src/windowsystem/windoweffects.cpp
2021-08-31 13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/windowsystem/windoweffects.cpp
2021-10-07 13:38:18.000000000 +0200
@@ -9,29 +9,30 @@
#include "waylandintegration.h"
#include <QDebug>
-#include <QWidget>
-#include <QGuiApplication>
#include <QExposeEvent>
+#include <QGuiApplication>
+#include <QWidget>
-#include <KWayland/Client/connection_thread.h>
-#include <KWayland/Client/plasmawindowmanagement.h>
-#include <KWayland/Client/registry.h>
-#include <KWayland/Client/plasmashell.h>
-#include <KWayland/Client/compositor.h>
-#include <KWayland/Client/surface.h>
#include <KWayland/Client/blur.h>
+#include <KWayland/Client/compositor.h>
+#include <KWayland/Client/connection_thread.h>
#include <KWayland/Client/contrast.h>
+#include <KWayland/Client/plasmashell.h>
+#include <KWayland/Client/plasmawindowmanagement.h>
#include <KWayland/Client/region.h>
+#include <KWayland/Client/registry.h>
#include <KWayland/Client/slide.h>
+#include <KWayland/Client/surface.h>
WindowEffects::WindowEffects()
- : QObject(),
- KWindowEffectsPrivate()
+ : QObject()
+ , KWindowEffectsPrivateV2()
{
}
WindowEffects::~WindowEffects()
-{}
+{
+}
QWindow *WindowEffects::windowForId(WId wid)
{
@@ -71,7 +72,7 @@
bool WindowEffects::eventFilter(QObject *watched, QEvent *event)
{
if (event->type() == QEvent::Expose) {
- auto ee = static_cast<QExposeEvent*>(event);
+ auto ee = static_cast<QExposeEvent *>(event);
if ((ee->region().isNull())) {
return false;
@@ -262,6 +263,29 @@
}
}
+void WindowEffects::setBackgroundFrost(QWindow *window, QColor color, const
QRegion ®ion)
+{
+ if (!WaylandIntegration::self()->waylandContrastManager()) {
+ return;
+ }
+
+ KWayland::Client::Surface *surface =
KWayland::Client::Surface::fromWindow(window);
+ if (!surface) {
+ return;
+ }
+ if (!color.isValid()) {
+
WaylandIntegration::self()->waylandContrastManager()->removeContrast(surface);
+ return;
+ }
+
+ auto backgroundContrast =
WaylandIntegration::self()->waylandContrastManager()->createContrast(surface,
surface);
+
backgroundContrast->setRegion(WaylandIntegration::self()->waylandCompositor()->createRegion(region,
nullptr));
+ backgroundContrast->setFrost(color);
+ backgroundContrast->commit();
+
+ WaylandIntegration::self()->waylandConnection()->flush();
+}
+
#if KWINDOWSYSTEM_BUILD_DEPRECATED_SINCE(5, 67)
void WindowEffects::markAsDashboard(WId window)
{
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/windoweffects.h
new/kwayland-integration-5.23.0/src/windowsystem/windoweffects.h
--- old/kwayland-integration-5.22.5/src/windowsystem/windoweffects.h
2021-08-31 13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/windowsystem/windoweffects.h
2021-10-07 13:38:18.000000000 +0200
@@ -13,16 +13,16 @@
namespace KWayland
{
- namespace Client
- {
- class BlurManager;
- class ContrastManager;
- class Compositor;
- class ConnectionThread;
- }
+namespace Client
+{
+class BlurManager;
+class ContrastManager;
+class Compositor;
+class ConnectionThread;
+}
}
-class WindowEffects : public QObject, public KWindowEffectsPrivate
+class WindowEffects : public QObject, public KWindowEffectsPrivateV2
{
Q_OBJECT
public:
@@ -47,8 +47,19 @@
#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 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
@@ -62,7 +73,6 @@
QRegion region;
};
QHash<QWindow *, BackgroundContrastData> m_backgroundConstrastRegions;
-
};
#endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/windowinfo.cpp
new/kwayland-integration-5.23.0/src/windowsystem/windowinfo.cpp
--- old/kwayland-integration-5.22.5/src/windowsystem/windowinfo.cpp
2021-08-31 13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/windowsystem/windowinfo.cpp
2021-10-07 13:38:18.000000000 +0200
@@ -13,20 +13,19 @@
#include <config-kwindowsystem.h>
-#include <QRect>
#include <QGuiApplication>
+#include <QRect>
#include <KWayland/Client/plasmashell.h>
#include <KWayland/Client/surface.h>
-
WindowInfo::WindowInfo(WId window, NET::Properties properties,
NET::Properties2 properties2)
- : KWindowInfoPrivate(window, properties, properties2),
- m_valid(false),
- m_properties(properties),
- m_properties2(properties2),
- m_surface(KWayland::Client::Surface::fromQtWinId(window)),
-
m_plasmaShellSurface(KWayland::Client::PlasmaShellSurface::get(m_surface))
+ : KWindowInfoPrivate(window, properties, properties2)
+ , m_valid(false)
+ , m_properties(properties)
+ , m_properties2(properties2)
+ , m_surface(KWayland::Client::Surface::fromQtWinId(window))
+ ,
m_plasmaShellSurface(KWayland::Client::PlasmaShellSurface::get(m_surface))
{
m_valid = m_surface != nullptr && m_surface->isValid();
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/windowinfo.h
new/kwayland-integration-5.23.0/src/windowsystem/windowinfo.h
--- old/kwayland-integration-5.22.5/src/windowsystem/windowinfo.h
2021-08-31 13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/windowsystem/windowinfo.h
2021-10-07 13:38:18.000000000 +0200
@@ -7,17 +7,16 @@
#ifndef WINDOWINFO_H
#define WINDOWINFO_H
-#include <kwindowinfo.h>
#include <KWindowSystem/private/kwindowinfo_p.h>
-
+#include <kwindowinfo.h>
namespace KWayland
{
- namespace Client
- {
- class Surface;
- class PlasmaShellSurface;
- }
+namespace Client
+{
+class Surface;
+class PlasmaShellSurface;
+}
}
class WindowInfo : public KWindowInfoPrivate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/windowshadow.cpp
new/kwayland-integration-5.23.0/src/windowsystem/windowshadow.cpp
--- old/kwayland-integration-5.22.5/src/windowsystem/windowshadow.cpp
2021-08-31 13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/windowsystem/windowshadow.cpp
2021-10-07 13:38:18.000000000 +0200
@@ -14,13 +14,16 @@
#include <QDebug>
#include <QExposeEvent>
+WindowShadowTile::WindowShadowTile() {}
+WindowShadowTile::~WindowShadowTile() {}
+
bool WindowShadowTile::create()
{
- KWayland::Client::ShmPool *shmPool =
WaylandIntegration::self()->waylandShmPool();
- if (!shmPool) {
+ m_shmPool.reset(WaylandIntegration::self()->createShmPool());
+ if (!m_shmPool) {
return false;
}
- buffer = shmPool->createBuffer(image);
+ buffer = m_shmPool->createBuffer(image);
return true;
}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/windowshadow.h
new/kwayland-integration-5.23.0/src/windowsystem/windowshadow.h
--- old/kwayland-integration-5.22.5/src/windowsystem/windowshadow.h
2021-08-31 13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/windowsystem/windowshadow.h
2021-10-07 13:38:18.000000000 +0200
@@ -14,12 +14,16 @@
class WindowShadowTile final : public KWindowShadowTilePrivate
{
public:
+ WindowShadowTile();
+ ~WindowShadowTile();
+
bool create() override;
void destroy() override;
static WindowShadowTile *get(const KWindowShadowTile *tile);
KWayland::Client::Buffer::Ptr buffer;
+ QScopedPointer<KWayland::Client::ShmPool> m_shmPool;
};
class WindowShadow final : public QObject, public KWindowShadowPrivate
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/windowsystem.cpp
new/kwayland-integration-5.23.0/src/windowsystem/windowsystem.cpp
--- old/kwayland-integration-5.22.5/src/windowsystem/windowsystem.cpp
2021-08-31 13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/windowsystem/windowsystem.cpp
2021-10-07 13:38:18.000000000 +0200
@@ -4,41 +4,89 @@
SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR
LicenseRef-KDE-Accepted-LGPL
*/
#include "windowsystem.h"
-#include "waylandintegration.h"
#include "logging.h"
+#include "waylandintegration.h"
+#include "waylandxdgactivationv1_p.h"
#include <KWindowSystem/KWindowSystem>
#include <KWayland/Client/connection_thread.h>
+#include <KWayland/Client/plasmashell.h>
#include <KWayland/Client/plasmawindowmanagement.h>
#include <KWayland/Client/registry.h>
-#include <KWayland/Client/plasmashell.h>
+#include <KWayland/Client/seat.h>
#include <KWayland/Client/surface.h>
#include <QPixmap>
#include <QPoint>
#include <QString>
+#include <QWindow>
+#include <private/qwaylanddisplay_p.h>
+#include <private/qwaylandinputdevice_p.h>
+#include <private/qwaylandwindow_p.h>
using namespace KWayland::Client;
WindowSystem::WindowSystem()
: QObject()
- , KWindowSystemPrivate()
+ , KWindowSystemPrivateV2()
+ , m_lastToken(qEnvironmentVariable("XDG_ACTIVATION_TOKEN"))
{
}
void WindowSystem::activateWindow(WId win, long int time)
{
- Q_UNUSED(win)
- Q_UNUSED(time)
- qCDebug(KWAYLAND_KWS) << "This plugin does not support force activating
windows";
+ Q_UNUSED(time);
+ Surface *s = Surface::fromQtWinId(win);
+ if (!s) {
+ return;
+ }
+ WaylandXdgActivationV1 *activation =
WaylandIntegration::self()->activation();
+ if (!activation) {
+ return;
+ }
+ activation->activate(m_lastToken, *s);
}
void WindowSystem::forceActiveWindow(WId win, long int time)
{
- Q_UNUSED(win)
- Q_UNUSED(time)
- qCDebug(KWAYLAND_KWS) << "This plugin does not support force activating
windows";
+ activateWindow(win, time);
+}
+
+void WindowSystem::requestToken(QWindow *window, uint32_t serial, const
QString &app_id)
+{
+ Surface *surface = Surface::fromWindow(window);
+ wl_surface *wlSurface = surface ? static_cast<wl_surface *>(*surface) :
nullptr;
+ WaylandXdgActivationV1 *activation =
WaylandIntegration::self()->activation();
+ if (!activation) {
+ Q_EMIT KWindowSystem::self()->xdgActivationTokenArrived(serial, {});
+ return;
+ }
+
+ auto waylandWindow = window ? dynamic_cast<QtWaylandClient::QWaylandWindow
*>(window->handle()) : nullptr;
+ auto seat = waylandWindow ?
waylandWindow->display()->defaultInputDevice()->wl_seat() : nullptr;
+ auto tokenReq = activation->requestXdgActivationToken(seat, wlSurface,
serial, app_id);
+ connect(tokenReq, &WaylandXdgActivationTokenV1::failed,
KWindowSystem::self(), [serial, app_id]() {
+ Q_EMIT KWindowSystem::self()->xdgActivationTokenArrived(serial, {});
+ });
+ connect(tokenReq, &WaylandXdgActivationTokenV1::done,
KWindowSystem::self(), [serial](const QString &token) {
+ Q_EMIT KWindowSystem::self()->xdgActivationTokenArrived(serial, token);
+ });
+}
+
+void WindowSystem::setCurrentToken(const QString &token)
+{
+ m_lastToken = token;
+}
+
+quint32 WindowSystem::lastInputSerial(QWindow *window)
+{
+ auto waylandWindow = window ? dynamic_cast<QtWaylandClient::QWaylandWindow
*>(window->handle()) : nullptr;
+ if (!waylandWindow) {
+ // Should never get here
+ return 0;
+ }
+ return waylandWindow->display()->lastInputSerial();
}
WId WindowSystem::activeWindow()
@@ -192,7 +240,19 @@
qCDebug(KWAYLAND_KWS) << "This plugin does not support virtual desktops";
}
-void WindowSystem::setExtendedStrut(WId win, int left_width, int left_start,
int left_end, int right_width, int right_start, int right_end, int top_width,
int top_start, int top_end, int bottom_width, int bottom_start, int bottom_end)
+void WindowSystem::setExtendedStrut(WId win,
+ int left_width,
+ int left_start,
+ int left_end,
+ int right_width,
+ int right_start,
+ int right_end,
+ int top_width,
+ int top_start,
+ int top_end,
+ int bottom_width,
+ int bottom_start,
+ int bottom_end)
{
Q_UNUSED(win)
Q_UNUSED(left_width)
@@ -435,7 +495,7 @@
return
WaylandIntegration::self()->plasmaWindowManagement()->isShowingDesktop();
}
-QList< WId > WindowSystem::stackingOrder()
+QList<WId> WindowSystem::stackingOrder()
{
qCDebug(KWAYLAND_KWS) << "This plugin does not support getting windows";
return QList<WId>();
@@ -464,12 +524,12 @@
return 0;
}
-QList< WId > WindowSystem::windows()
+QList<WId> WindowSystem::windows()
{
return stackingOrder();
}
-QRect WindowSystem::workArea(const QList< WId > &excludes, int desktop)
+QRect WindowSystem::workArea(const QList<WId> &excludes, int desktop)
{
Q_UNUSED(excludes)
Q_UNUSED(desktop)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/kwayland-integration-5.22.5/src/windowsystem/windowsystem.h
new/kwayland-integration-5.23.0/src/windowsystem/windowsystem.h
--- old/kwayland-integration-5.22.5/src/windowsystem/windowsystem.h
2021-08-31 13:40:16.000000000 +0200
+++ new/kwayland-integration-5.23.0/src/windowsystem/windowsystem.h
2021-10-07 13:38:18.000000000 +0200
@@ -18,7 +18,7 @@
}
}
-class WindowSystem : public QObject, public KWindowSystemPrivate
+class WindowSystem : public QObject, public KWindowSystemPrivateV2
{
Q_OBJECT
public:
@@ -29,6 +29,9 @@
void activateWindow(WId win, long time) override;
void forceActiveWindow(WId win, long time) override;
void demandAttention(WId win, bool set) override;
+ void requestToken(QWindow *win, uint32_t serial, const QString &app_id)
override;
+ quint32 lastInputSerial(QWindow *window) override;
+ void setCurrentToken(const QString &token) override;
bool compositingActive() override;
int currentDesktop() override;
int numberOfDesktops() override;
@@ -57,9 +60,19 @@
bool showingDesktop() override;
void setShowingDesktop(bool showing) override;
void setUserTime(WId win, long time) override;
- void setExtendedStrut(WId win, int left_width, int left_start, int
left_end,
- int right_width, int right_start, int right_end, int
top_width, int top_start, int top_end,
- int bottom_width, int bottom_start, int bottom_end)
override;
+ void setExtendedStrut(WId win,
+ int left_width,
+ int left_start,
+ int left_end,
+ int right_width,
+ int right_start,
+ int right_end,
+ int top_width,
+ int top_start,
+ int top_end,
+ int bottom_width,
+ int bottom_start,
+ int bottom_end) override;
void setStrut(WId win, int left, int right, int top, int bottom) override;
bool allowedActionsSupported() override;
QString readNameProperty(WId window, unsigned long atom) override;
@@ -70,11 +83,11 @@
int viewportWindowToDesktop(const QRect &r) override;
QPoint desktopToViewport(int desktop, bool absolute) override;
QPoint constrainViewportRelativePosition(const QPoint &pos) override;
-
void connectNotify(const QMetaMethod &signal) override;
private:
KWayland::Client::PlasmaShell *m_waylandPlasmaShell = nullptr;
+ QString m_lastToken;
};
#endif
++++++ plasma.keyring ++++++
Binary files /var/tmp/diff_new_pack.o1zLa4/_old and
/var/tmp/diff_new_pack.o1zLa4/_new differ