diff --git a/kwin/scripts/convergentwindows/contents/code/main.js b/kwin/scripts/convergentwindows/contents/code/main.js deleted file mode 100644 index c4458f3b..00000000 --- a/kwin/scripts/convergentwindows/contents/code/main.js +++ /dev/null @@ -1,33 +0,0 @@ -// SPDX-FileCopyrightText: 2023 Plata Hill -// SPDX-License-Identifier: LGPL-2.1-or-later - -function run(client) { - if (client.screen === 0) { - client.setMaximize(true, true); - client.noBorder = true; - } else { - client.noBorder = false; - } -} - -workspace.clientAdded.connect((client) => { - if (client.normalWindow) { - client.interactiveMoveResizeFinished.connect((client) => { - run(client); - }); - run(client); - } -}); - -// Windows are moved from the external screen -// to the internal screen if the external screen -// is disconnected. -workspace.screensChanged.connect(() => { - const clients = workspace.clientList(); - - for (var i = 0; i < clients.length; i++) { - if (clients[i].normalWindow) { - run(clients[i]); - } - } -}); diff --git a/kwin/scripts/convergentwindows/contents/ui/main.qml b/kwin/scripts/convergentwindows/contents/ui/main.qml new file mode 100644 index 00000000..6d9667ca --- /dev/null +++ b/kwin/scripts/convergentwindows/contents/ui/main.qml @@ -0,0 +1,45 @@ +// SPDX-FileCopyrightText: 2023 Plata Hill +// SPDX-FileCopyrightText: 2023 Devin Lin +// SPDX-License-Identifier: LGPL-2.1-or-later + +import QtQuick +import org.kde.kwin + +Item { + id: root + + function run(client) { + if (client.screen === 0) { + client.setMaximize(true, true); + client.noBorder = true; + } else { + client.noBorder = false; + } + } + + Connections { + target: Workspace + + function onClientAdded(client) { + if (client.normalWindow) { + client.interactiveMoveResizeFinished.connect((client) => { + root.run(client); + }); + root.run(client); + } + } + + function onScreensChanged() { + // Windows are moved from the external screen + // to the internal screen if the external screen + // is disconnected. + const clients = Workspace.clientList(); + + for (var i = 0; i < clients.length; i++) { + if (clients[i].normalWindow) { + root.run(clients[i]); + } + } + } + } +} diff --git a/kwin/scripts/convergentwindows/metadata.json b/kwin/scripts/convergentwindows/metadata.json index c57a906d..cbb43c8a 100644 --- a/kwin/scripts/convergentwindows/metadata.json +++ b/kwin/scripts/convergentwindows/metadata.json @@ -60,8 +60,8 @@ "Name[uk]": "Збіжні вікна", "Name[x-test]": "xxConvergent Windowsxx", "Version": "1.0", - "Website": "https://invent.kde.org/plata/convergentwindows" + "Website": "https://invent.kde.org/plasma/plasma-mobile" }, - "X-Plasma-API": "javascript", - "X-Plasma-MainScript": "code/main.js" + "X-Plasma-API": "declarativescript", + "X-Plasma-MainScript": "ui/main.qml" }