diff --git a/scripting/workspace_wrapper.h b/scripting/workspace_wrapper.h --- a/scripting/workspace_wrapper.h +++ b/scripting/workspace_wrapper.h @@ -70,7 +70,7 @@ 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 @@ 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 @@ QSize displaySize() const; int activeScreen() const; int numScreens() const; - QString currentActivity() const; QStringList activityList() const; QSize virtualScreenSize() const; QRect virtualScreenGeometry() const; diff --git a/scripting/workspace_wrapper.cpp b/scripting/workspace_wrapper.cpp --- a/scripting/workspace_wrapper.cpp +++ b/scripting/workspace_wrapper.cpp @@ -113,6 +113,17 @@ #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