diff --git a/src/core/plasma-api/utils.hpp b/src/core/plasma-api/utils.hpp index 9d9d4ade..f9b12acf 100644 --- a/src/core/plasma-api/utils.hpp +++ b/src/core/plasma-api/utils.hpp @@ -18,6 +18,14 @@ m_kwinImpl->setProperty(#NAME, QVariant::fromValue(value)); \ } +#define BI_READONLY_PROPERTY(TYPE, NAME) \ + Q_PROPERTY(TYPE NAME READ NAME); \ + \ + TYPE NAME() const \ + { \ + return m_kwinImpl->property(#NAME).value(); \ + } + /** * Wrap QML API method * diff --git a/src/core/plasma-api/workspace.hpp b/src/core/plasma-api/workspace.hpp index 7fbdefc7..da2332ba 100644 --- a/src/core/plasma-api/workspace.hpp +++ b/src/core/plasma-api/workspace.hpp @@ -40,6 +40,7 @@ public: BI_PROPERTY(int, currentDesktop, setCurrentDesktop); BI_PROPERTY(QString, currentActivity, setCurrentActivity); BI_PROPERTY(int, desktops, setDesktops); + BI_READONLY_PROPERTY(int, numScreens); /** * Returns the geometry a Client can use with the specified option. diff --git a/src/kwinscript/driver/index.ts b/src/kwinscript/driver/index.ts index a5aeba45..1856328d 100644 --- a/src/kwinscript/driver/index.ts +++ b/src/kwinscript/driver/index.ts @@ -102,7 +102,7 @@ export class DriverImpl implements Driver { public get screens(): DriverSurface[] { const screensArr = []; - for (let screen = 0; screen < this.kwinApi.workspace.numScreens; screen++) { + for (let screen = 0; screen < this.proxy.workspace().numScreens; screen++) { screensArr.push( new DriverSurfaceImpl( screen,