From e38a241048edcd6881a9f86b6ba9f750eb4ddbcc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tiago=20Corr=C3=AAa?= Date: Thu, 7 May 2020 08:35:27 +0300 Subject: [PATCH] scripting: Make workspace.currentActivity writable Summary: Allows KWin scripts to change the value of workspace.currentActivity property. Reviewers: #kwin Subscribers: zzag, kwin Tags: #kwin Differential Revision: https://phabricator.kde.org/D29458 --- scripting/workspace_wrapper.cpp | 11 +++++++++++ scripting/workspace_wrapper.h | 4 ++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/scripting/workspace_wrapper.cpp b/scripting/workspace_wrapper.cpp index 79f133e426..c7683dcb5e 100644 --- a/scripting/workspace_wrapper.cpp +++ b/scripting/workspace_wrapper.cpp @@ -113,6 +113,17 @@ QString WorkspaceWrapper::currentActivity() const #endif } +void WorkspaceWrapper::setCurrentActivity(QString activity) +{ +#ifdef KWIN_BUILD_ACTIVITIES + if (Activities::self()) { + Activities::self()->setCurrent(activity); + } +#else + Q_UNUSED(activity) +#endif +} + QStringList WorkspaceWrapper::activityList() const { #ifdef KWIN_BUILD_ACTIVITIES diff --git a/scripting/workspace_wrapper.h b/scripting/workspace_wrapper.h index b3c40affee..340352cbda 100644 --- a/scripting/workspace_wrapper.h +++ b/scripting/workspace_wrapper.h @@ -70,7 +70,7 @@ class WorkspaceWrapper : public QObject Q_PROPERTY(int displayHeight READ displayHeight) Q_PROPERTY(int activeScreen READ activeScreen) Q_PROPERTY(int numScreens READ numScreens NOTIFY numberScreensChanged) - Q_PROPERTY(QString currentActivity READ currentActivity NOTIFY currentActivityChanged) + Q_PROPERTY(QString currentActivity READ currentActivity WRITE setCurrentActivity NOTIFY currentActivityChanged) Q_PROPERTY(QStringList activities READ activityList NOTIFY activitiesChanged) /** * The bounding size of all screens combined. Overlapping areas @@ -208,6 +208,7 @@ rettype getter() const; \ void setter( rettype val ); GETTERSETTERDEF(int, numberOfDesktops, setNumberOfDesktops) GETTERSETTERDEF(int, currentDesktop, setCurrentDesktop) + GETTERSETTERDEF(QString, currentActivity, setCurrentActivity) GETTERSETTERDEF(KWin::AbstractClient*, activeClient, setActiveClient) #undef GETTERSETTERDEF QSize desktopGridSize() const; @@ -221,7 +222,6 @@ void setter( rettype val ); QSize displaySize() const; int activeScreen() const; int numScreens() const; - QString currentActivity() const; QStringList activityList() const; QSize virtualScreenSize() const; QRect virtualScreenGeometry() const;