Warning, /plasma/plasma-mobile/kwin/scripts/convergentwindows/contents/ui/main.qml is written in an unsupported language. File is not indexed.

0001 // SPDX-FileCopyrightText: 2023 Plata Hill <plata.hill@kdemail.net>
0002 // SPDX-FileCopyrightText: 2023 Devin Lin <devin@kde.org>
0003 // SPDX-License-Identifier: LGPL-2.1-or-later
0004 
0005 import QtQuick
0006 import org.kde.kwin as KWinComponents
0007 import org.kde.plasma.private.mobileshell.shellsettingsplugin as ShellSettings
0008 
0009 Loader {
0010     id: root
0011 
0012     function run(window) {
0013         if (!ShellSettings.Settings.convergenceModeEnabled) {
0014             window.noBorder = true;
0015             window.setMaximize(true, true);
0016         } else {
0017             window.noBorder = false;
0018         }
0019     }
0020 
0021     Connections {
0022         target: ShellSettings.Settings
0023 
0024         function onConvergenceModeEnabledChanged() {
0025             const windows = KWinComponents.Workspace.windows;
0026 
0027             for (let i = 0; i < windows.length; i++) {
0028                 if (windows[i].normalWindow) {
0029                     root.run(windows[i]);
0030                 }
0031             }
0032         }
0033     }
0034 
0035     Connections {
0036         target: KWinComponents.Workspace
0037 
0038         function onWindowAdded(window) {
0039             if (window.normalWindow) {
0040                 window.interactiveMoveResizeFinished.connect((window) => {
0041                     root.run(window);
0042                 });
0043                 root.run(window);
0044             }
0045         }
0046 
0047         function onScreensChanged() {
0048             // Windows are moved from the external screen
0049             // to the internal screen if the external screen
0050             // is disconnected.
0051             const windows = KWinComponents.Workspace.windows;
0052 
0053             for (var i = 0; i < windows.length; i++) {
0054                 if (windows[i].normalWindow) {
0055                     root.run(windows[i]);
0056                 }
0057             }
0058         }
0059     }
0060 }