@@ -806,7 +806,7 @@ FocusScope {
806 maximizedTopLeft || maximizedTopRight || maximizedBottomLeft || maximizedBottomRight
806 maximizedTopLeft || maximizedTopRight || maximizedBottomLeft || maximizedBottomRight
808 readonly property bool minimized: windowState & WindowStateStorage.WindowStateMinimized
808 readonly property bool minimized: windowState & WindowStateStorage.WindowStateMinimized
809− readonly property bool fullscreen: window.state === Mir.FullscreenState
809+ readonly property bool fullscreen: windowState === WindowStateStorage.WindowStateFullscreen
811 readonly property bool canBeMaximized: canBeMaximizedHorizontally && canBeMaximizedVertically
811 readonly property bool canBeMaximized: canBeMaximizedHorizontally && canBeMaximizedVertically
812 readonly property bool canBeMaximizedLeftRight: (maximumWidth == 0 || maximumWidth >= appContainer.width/2) &&
812 readonly property bool canBeMaximizedLeftRight: (maximumWidth == 0 || maximumWidth >= appContainer.width/2) &&
@@ -818,6 +818,7 @@ FocusScope {
818 readonly property alias orientationChangesEnabled: decoratedWindow.orientationChangesEnabled
818 readonly property alias orientationChangesEnabled: decoratedWindow.orientationChangesEnabled
820 property int windowState: WindowStateStorage.WindowStateNormal
820 property int windowState: WindowStateStorage.WindowStateNormal
821+ property int prevWindowState: WindowStateStorage.WindowStateRestored
821 property bool animationsEnabled: true
822 property bool animationsEnabled: true
822 property alias title: decoratedWindow.title
823 property alias title: decoratedWindow.title
823 readonly property string appName: model.application ? model.application.name : ""
824 readonly property string appName: model.application ? model.application.name : ""
@@ -922,7 +923,14 @@ FocusScope {
922 } else if (model.window.state === Mir.MaximizedBottomRightState) {
923 } else if (model.window.state === Mir.MaximizedBottomRightState) {
923 appDelegate.maximizeBottomRight();
924 appDelegate.maximizeBottomRight();
924 } else if (model.window.state === Mir.RestoredState) {
925 } else if (model.window.state === Mir.RestoredState) {
926+ if (appDelegate.fullscreen && appDelegate.prevWindowState != WindowStateStorage.WindowStateRestored) {
927+ model.window.requestState(WindowStateStorage.toMirState(appDelegate.prevWindowState));
925− appDelegate.restore();
929+ appDelegate.restore();
931+ } else if (model.window.state === Mir.FullscreenState) {
932+ appDelegate.prevWindowState = appDelegate.windowState;
933+ appDelegate.windowState = WindowStateStorage.WindowStateFullscreen;
@@ -1024,6 +1032,7 @@ FocusScope {
1024 animationsEnabled = (animated === undefined) || animated;
1032 animationsEnabled = (animated === undefined) || animated;
1025 windowState = state || WindowStateStorage.WindowStateRestored;
1033 windowState = state || WindowStateStorage.WindowStateRestored;
1026 windowState &= ~WindowStateStorage.WindowStateMinimized; // clear the minimized bit
1034 windowState &= ~WindowStateStorage.WindowStateMinimized; // clear the minimized bit
1035+ prevWindowState = windowState;
1029 function playFocusAnimation() {
1038 function playFocusAnimation() {