diff --git a/src/extern/kwin.d.ts b/src/extern/kwin.d.ts index bca0f76..1f756e9 100644 --- a/src/extern/kwin.d.ts +++ b/src/extern/kwin.d.ts @@ -60,7 +60,7 @@ interface KwinClient { shade: boolean; minimized: boolean; frameGeometry: QmlRect; - desktops: KwinDesktop[]; // TODO: is empty = all desktops? + desktops: KwinDesktop[]; // empty array means all desktops tile: Tile; opacity: number; diff --git a/src/world/Clients.ts b/src/world/Clients.ts index 9904c78..c69f0e4 100644 --- a/src/world/Clients.ts +++ b/src/world/Clients.ts @@ -21,7 +21,7 @@ namespace Clients { export function getKwinDesktopApprox(kwinClient: KwinClient) { switch (kwinClient.desktops.length) { - case 0: // TODO: is empty = all desktops? + case 0: return Workspace.currentDesktop; case 1: return kwinClient.desktops[0]; @@ -45,10 +45,10 @@ namespace Clients { } export function isOnVirtualDesktop(kwinClient: KwinClient, kwinDesktop: KwinDesktop) { - return kwinClient.desktops.length === 0 || kwinClient.desktops.includes(kwinDesktop); // TODO: is empty = all desktops? + return kwinClient.desktops.length === 0 || kwinClient.desktops.includes(kwinDesktop); } export function isOnOneOfVirtualDesktops(kwinClient: KwinClient, kwinDesktops: KwinDesktop[]) { - return kwinClient.desktops.length === 0 || kwinClient.desktops.some(d => kwinDesktops.includes(d)); // TODO: is empty = all desktops? + return kwinClient.desktops.length === 0 || kwinClient.desktops.some(d => kwinDesktops.includes(d)); } } diff --git a/src/world/DesktopManager.ts b/src/world/DesktopManager.ts index 1a6b88e..2f0c54c 100644 --- a/src/world/DesktopManager.ts +++ b/src/world/DesktopManager.ts @@ -71,7 +71,7 @@ class DesktopManager { public *getDesktopsForClient(kwinClient: KwinClient) { // TODO: call `getDesktops` when Qt bug is fixed const clientActivities = kwinClient.activities.length > 0 ? kwinClient.activities : this.kwinActivities.keys(); - const clientDesktops = kwinClient.desktops.length > 0 ? kwinClient.desktops : this.kwinDesktops.keys(); // TODO: is empty = all desktops? + const clientDesktops = kwinClient.desktops.length > 0 ? kwinClient.desktops : this.kwinDesktops.keys(); for (const clientActivity of clientActivities) { for (const clientDesktop of clientDesktops) { yield this.getDesktop(clientActivity, clientDesktop); diff --git a/src/world/clientState/Pinned.ts b/src/world/clientState/Pinned.ts index 22a0b8f..83c41d0 100644 --- a/src/world/clientState/Pinned.ts +++ b/src/world/clientState/Pinned.ts @@ -63,7 +63,7 @@ namespace ClientState { }); manager.connect(kwinClient.desktopsChanged, () => { - const changedDesktops = oldDesktops.length === 0 || kwinClient.desktops.length === 0 ? // TODO: is empty = all desktops? + const changedDesktops = oldDesktops.length === 0 || kwinClient.desktops.length === 0 ? [] : union(oldDesktops, kwinClient.desktops); world.do((clientManager, desktopManager) => { @@ -79,7 +79,7 @@ namespace ClientState { [] : union(oldActivities, kwinClient.activities); world.do((clientManager, desktopManager) => { - for (const desktop of desktopManager.getDesktops(changedActivities, kwinClient.desktops)) { // TODO: is empty = all desktops? + for (const desktop of desktopManager.getDesktops(changedActivities, kwinClient.desktops)) { desktop.onPinsChanged(); } });