This commit is contained in:
wheaney 2025-06-24 10:36:39 -07:00
parent 458700798f
commit 852eb47e3f
4 changed files with 12 additions and 15 deletions

View File

@ -153,9 +153,6 @@ void CubeEffect::activate()
if (effects->isScreenLocked()) { if (effects->isScreenLocked()) {
return; return;
} }
if (effects->desktops().size() < 3) {
return;
}
setRunning(true); setRunning(true);
} }

View File

@ -16,22 +16,23 @@ Node {
readonly property real faceDistance: 0.5 * faceSize.width / Math.tan(angleTick * Math.PI / 360) + faceDisplacement; readonly property real faceDistance: 0.5 * faceSize.width / Math.tan(angleTick * Math.PI / 360) + faceDisplacement;
readonly property real angleTick: 360 / faceRepeater.count readonly property real angleTick: 360 / faceRepeater.count
function desktopAt(azimuth) { function screenAt(azimuth) {
let index = Math.round(azimuth / angleTick) % faceRepeater.count; let index = Math.round(azimuth / angleTick) % faceRepeater.count;
if (index < 0) { if (index < 0) {
index += faceRepeater.count; index += faceRepeater.count;
} }
return faceRepeater.objectAt(index).desktop; return faceRepeater.objectAt(index).screen;
} }
function desktopAzimuth(desktop) { function screenAzimuth(screen) {
return cube.angleTick * (desktop.x11DesktopNumber - 1); return cube.angleTick * screen.index;
} }
Repeater3D { Repeater3D {
id: faceRepeater id: faceRepeater
model: KWinComponents.VirtualDesktopModel {} model: KWinComponents.Workspace.screens.length
delegate: CubeFace { delegate: CubeFace {
property var screen: KWinComponents.Workspace.screens[index]
faceSize: cube.faceSize faceSize: cube.faceSize
scale: Qt.vector3d(faceSize.width / 100, faceSize.height / 100, 1) scale: Qt.vector3d(faceSize.width / 100, faceSize.height / 100, 1)
eulerRotation.y: cube.angleTick * index eulerRotation.y: cube.angleTick * index

View File

@ -10,7 +10,7 @@ import QtQuick3D
Model { Model {
id: face id: face
required property QtObject desktop required property QtObject screen
required property int index required property int index
required property size faceSize required property size faceSize
@ -21,7 +21,7 @@ Model {
lighting: DefaultMaterial.NoLighting lighting: DefaultMaterial.NoLighting
diffuseMap: Texture { diffuseMap: Texture {
sourceItem: DesktopView { sourceItem: DesktopView {
desktop: face.desktop screen: face.screen
width: faceSize.width width: faceSize.width
height: faceSize.height height: faceSize.height
} }

View File

@ -10,20 +10,19 @@ import org.kde.kwin as KWinComponents
Item { Item {
id: desktopView id: desktopView
required property QtObject desktop required property QtObject screen
Repeater { Repeater {
model: KWinComponents.WindowFilterModel { model: KWinComponents.WindowFilterModel {
activity: KWinComponents.Workspace.currentActivity activity: KWinComponents.Workspace.currentActivity
desktop: desktopView.desktop screenName: desktopView.screen.name
screenName: targetScreen.name
windowModel: KWinComponents.WindowModel {} windowModel: KWinComponents.WindowModel {}
} }
KWinComponents.WindowThumbnail { KWinComponents.WindowThumbnail {
wId: model.window.internalId wId: model.window.internalId
x: model.window.x - targetScreen.geometry.x x: model.window.x - desktopView.screen.geometry.x
y: model.window.y - targetScreen.geometry.y y: model.window.y - desktopView.screen.geometry.y
z: model.window.stackingOrder z: model.window.stackingOrder
visible: !model.window.minimized visible: !model.window.minimized
} }