@@ -163,6 +163,47 @@ AbstractStage {
167+ property var mainStageDelegate: null
168+ property var sideStageDelegate: null
169+ property int mainStageItemId: 0
170+ property int sideStageItemId: 0
171+ property string mainStageAppId: ""
172+ property string sideStageAppId: ""
174+ function updateMainAndSideStageIndexes() {
175+ var choseMainStage = false;
176+ var choseSideStage = false;
178+ if (!root.topLevelSurfaceList)
181+ for (var i = 0; i < topLevelSurfaceRepeater.count && (!choseMainStage || !choseSideStage); ++i) {
182+ var appDelegate = topLevelSurfaceRepeater.itemAt(i);
183+ if (sideStage.shown && spreadDelegate.stage == ApplicationInfoInterface.SideStage
184+ && !choseSideStage) {
185+ priv.sideStageDelegate = appDelegate
186+ priv.sideStageItemId = root.topLevelSurfaceList.idAt(i);
187+ priv.sideStageAppId = root.topLevelSurfaceList.applicationAt(i).appId;
188+ choseSideStage = true;
189+ } else if (!choseMainStage && spreadDelegate.stage == ApplicationInfoInterface.MainStage) {
190+ priv.mainStageDelegate = appDelegate;
191+ priv.mainStageItemId = root.topLevelSurfaceList.idAt(i);
192+ priv.mainStageAppId = root.topLevelSurfaceList.applicationAt(i).appId;
193+ choseMainStage = true;
196+ if (!choseMainStage) {
197+ priv.mainStageDelegate = null;
198+ priv.mainStageItemId = 0;
199+ priv.mainStageAppId = "";
201+ if (!choseSideStage) {
202+ priv.sideStageDelegate = null;
203+ priv.sideStageItemId = 0;
204+ priv.sideStageAppId = "";
168 Connections {
209 Connections {
@@ -254,6 +295,9 @@ AbstractStage {
255 name: "staged"; when: root.mode === "staged"
296 name: "staged"; when: root.mode === "staged"
299+ name: "stagedWithSideStage"; when: root.mode === "stagedWithSideStage"
258 name: "windowed"; when: root.mode === "windowed"
302 name: "windowed"; when: root.mode === "windowed"
@@ -359,6 +403,8 @@ AbstractStage {
359 property bool visuallyMaximized: false
403 property bool visuallyMaximized: false
360 property bool visuallyMinimized: false
404 property bool visuallyMinimized: false
406+ property int stage: ApplicationInfoInterface.MainStage
362 readonly property var surface: model.surface
408 readonly property var surface: model.surface
363 readonly property alias resizeArea: resizeArea
409 readonly property alias resizeArea: resizeArea
@@ -548,6 +594,15 @@ AbstractStage {
548 totalItems: appRepeater.count
594 totalItems: appRepeater.count
549 flickable: floatingFlickable
595 flickable: floatingFlickable
599+ sceneWidth: root.width
600+ stage: appDelegate.stage
601+ thisDelegate: appDelegate
602+ mainStageDelegate: priv.mainStageDelegate
603+ sideStageDelegate: priv.sideStageDelegate
551 StagedRightEdgeMaths {
606 StagedRightEdgeMaths {
552 id: stagedRightEdgeMaths
607 id: stagedRightEdgeMaths
553 itemIndex: index
608 itemIndex: index
@@ -597,7 +652,7 @@ AbstractStage {
598 PropertyChanges {
653 PropertyChanges {
599 target: decoratedWindow;
654 target: decoratedWindow;
600− showDecoration: false
655+ hasDecoration: false
601 requestedWidth: stagedRightEdgeMaths.animatedWidth
656 requestedWidth: stagedRightEdgeMaths.animatedWidth
602 requestedHeight: stagedRightEdgeMaths.animatedHeight - PanelState.panelHeight
657 requestedHeight: stagedRightEdgeMaths.animatedHeight - PanelState.panelHeight
603// width: appContainer.width - root.leftMargin
658// width: appContainer.width - root.leftMargin
@@ -624,6 +679,29 @@ AbstractStage {
624 enabled: false
679 enabled: false
683+ name: "stagedWithSideStage"; when: root.state == "stagedWithSideStage"
691+ y: appDelegate.fullscreen ? 0 : PanelState.panelHeight
692+ requestedWidth: stageMaths.itemWidth
693+ requestedHeight: appContainer.height - PanelState.panelHeight
694+ visuallyMaximized: true
697+ target: decoratedWindow
698+ hasDecoration: false
628 name: "maximized"; when: root.state === "windowed" && appDelegate.maximized && !appDelegate.minimized
706 name: "maximized"; when: root.state === "windowed" && appDelegate.maximized && !appDelegate.minimized
629 PropertyChanges {
707 PropertyChanges {