From da8ad3201b4ce2d05103b1494c980f1f366ee7f2 Mon Sep 17 00:00:00 2001 From: Aleix Pol Date: Fri, 20 May 2022 16:03:23 +0200 Subject: [PATCH] xdg_activation_v1: Improve internal API Be explicit about how we only request privileged tokens internally in KWin. --- src/plugins/windowsystem/windowsystem.cpp | 2 +- src/xdgactivationv1.h | 6 +++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/plugins/windowsystem/windowsystem.cpp b/src/plugins/windowsystem/windowsystem.cpp index e5f57398d6..a6e8929d23 100644 --- a/src/plugins/windowsystem/windowsystem.cpp +++ b/src/plugins/windowsystem/windowsystem.cpp @@ -324,7 +324,7 @@ void WindowSystem::requestToken(QWindow *win, uint32_t serial, const QString &ap Q_UNUSED(win); // it's coming from within kwin, it doesn't matter the window auto seat = KWin::waylandServer()->seat(); - auto token = KWin::waylandServer()->xdgActivationIntegration()->requestToken(true, nullptr, seat->display()->serial(), seat, appId); + auto token = KWin::waylandServer()->xdgActivationIntegration()->requestPrivilegedToken(nullptr, seat->display()->serial(), seat, appId); // Ensure that xdgActivationTokenArrived is always emitted asynchronously QTimer::singleShot(0, [serial, token] { Q_EMIT KWindowSystem::self()->xdgActivationTokenArrived(serial, token); diff --git a/src/xdgactivationv1.h b/src/xdgactivationv1.h index f16de1092b..366a07ae7a 100644 --- a/src/xdgactivationv1.h +++ b/src/xdgactivationv1.h @@ -44,10 +44,14 @@ public: QSharedPointer activation; }; - QString requestToken(bool isPrivileged, KWaylandServer::SurfaceInterface *surface, uint serial, KWaylandServer::SeatInterface *seat, const QString &appId); + QString requestPrivilegedToken(KWaylandServer::SurfaceInterface *surface, uint serial, KWaylandServer::SeatInterface *seat, const QString &appId) + { + return requestToken(true, surface, serial, seat, appId); + } void activateSurface(KWaylandServer::SurfaceInterface *surface, const QString &token); private: + QString requestToken(bool isPrivileged, KWaylandServer::SurfaceInterface *surface, uint serial, KWaylandServer::SeatInterface *seat, const QString &appId); void clear(); QScopedPointer m_currentActivationToken;