on xenial help sign in
don't shrink the complete stage
commit78c2f299ff3669f8c5889a9299b2644524b52481 authorMichael Zanetti <michael.zanetti@canonical.com> dateThu 25 Feb 2016, 13:34 (11 years ago) parentb51b98e
5 files changed+262−260
qml/Launcher/Launcher.qml+1−1 qml/Shell.qml+1−1 qml/Stages/DesktopStage.qml+227−231 qml/Stages/WindowResizeArea.qml+3−2 tests/qmltests/tst_Shell.qml+30−25
qml/Launcher/Launcher.qml+1−1
@@ -95,7 +95,7 @@ FocusScope {
9595
9696 onLockedVisibleChanged: {
9797 if (lockedVisible && state == "") {
98− dismissTimer.stop();
98+ panel.dismissTimer.stop();
9999 fadeOutAnimation.stop();
100100 switchToNextState("visible")
101101 } else if (!lockedVisible && state == "visible") {
qml/Shell.qml+1−1
@@ -352,7 +352,7 @@ Item {
352352 Binding {
353353 target: applicationsDisplayLoader.item
354354 property: "leftMargin"
355− value: launcher.lockedVisible ? launcher.panelWidth: 0
355+ value: shell.usageScenario == "desktop" && !settings.autohideLauncher ? launcher.panelWidth: 0
356356 }
357357 }
358358
qml/Stages/DesktopStage.qml+227−231
@@ -224,9 +224,12 @@ AbstractStage {
224224 PanelState.dropShadow = false;
225225 }
226226
227− Item {
228− id: stageContainer
227+
228+ FocusScope {
229+ id: appContainer
230+ objectName: "appContainer"
229231 anchors.fill: parent
232+ focus: spread.state !== "altTab"
230233
231234 CrossFadeImage {
232235 id: wallpaper
@@ -236,245 +239,238 @@ AbstractStage {
236239 fillMode: Image.PreserveAspectCrop
237240 }
238241
239− FocusScope {
240− id: appContainer
241− objectName: "appContainer"
242− anchors.fill: parent
243− anchors.leftMargin: root.leftMargin
244− focus: spread.state !== "altTab"
245−
246− Repeater {
247− id: appRepeater
248− model: ApplicationManager
249− objectName: "appRepeater"
250−
251− delegate: FocusScope {
252− id: appDelegate
253− objectName: "appDelegate_" + appId
254− // z might be overriden in some cases by effects, but we need z ordering
255− // to calculate occlusion detection
256− property int normalZ: ApplicationManager.count - index
257− z: normalZ
258− y: PanelState.panelHeight
259− focus: appId === priv.focusedAppId
260− width: decoratedWindow.width
261− height: decoratedWindow.height
262− property alias requestedWidth: decoratedWindow.requestedWidth
263− property alias requestedHeight: decoratedWindow.requestedHeight
264− property alias minimumWidth: decoratedWindow.minimumWidth
265− property alias minimumHeight: decoratedWindow.minimumHeight
266− property alias maximumWidth: decoratedWindow.maximumWidth
267− property alias maximumHeight: decoratedWindow.maximumHeight
268− property alias widthIncrement: decoratedWindow.widthIncrement
269− property alias heightIncrement: decoratedWindow.heightIncrement
270−
271−
272− QtObject {
273− id: appDelegatePrivate
274− property bool maximized: false
275− property bool maximizedLeft: false
276− property bool maximizedRight: false
277− property bool minimized: false
278− }
279− readonly property alias maximized: appDelegatePrivate.maximized
280− readonly property alias maximizedLeft: appDelegatePrivate.maximizedLeft
281− readonly property alias maximizedRight: appDelegatePrivate.maximizedRight
282− readonly property alias minimized: appDelegatePrivate.minimized
283−
284− readonly property string appId: model.appId
285− property bool animationsEnabled: true
286− property alias title: decoratedWindow.title
287− readonly property string appName: model.name
288− property bool visuallyMaximized: false
289− property bool visuallyMinimized: false
290−
291− onFocusChanged: {
292− if (focus && ApplicationManager.focusedApplicationId !== appId) {
293− ApplicationManager.focusApplication(appId);
294− }
242+ Repeater {
243+ id: appRepeater
244+ model: ApplicationManager
245+ objectName: "appRepeater"
246+
247+ delegate: FocusScope {
248+ id: appDelegate
249+ objectName: "appDelegate_" + appId
250+ // z might be overriden in some cases by effects, but we need z ordering
251+ // to calculate occlusion detection
252+ property int normalZ: ApplicationManager.count - index
253+ z: normalZ
254+ y: PanelState.panelHeight
255+ focus: appId === priv.focusedAppId
256+ width: decoratedWindow.width
257+ height: decoratedWindow.height
258+ property alias requestedWidth: decoratedWindow.requestedWidth
259+ property alias requestedHeight: decoratedWindow.requestedHeight
260+ property alias minimumWidth: decoratedWindow.minimumWidth
261+ property alias minimumHeight: decoratedWindow.minimumHeight
262+ property alias maximumWidth: decoratedWindow.maximumWidth
263+ property alias maximumHeight: decoratedWindow.maximumHeight
264+ property alias widthIncrement: decoratedWindow.widthIncrement
265+ property alias heightIncrement: decoratedWindow.heightIncrement
266+
267+ QtObject {
268+ id: appDelegatePrivate
269+ property bool maximized: false
270+ property bool maximizedLeft: false
271+ property bool maximizedRight: false
272+ property bool minimized: false
273+ }
274+ readonly property alias maximized: appDelegatePrivate.maximized
275+ readonly property alias maximizedLeft: appDelegatePrivate.maximizedLeft
276+ readonly property alias maximizedRight: appDelegatePrivate.maximizedRight
277+ readonly property alias minimized: appDelegatePrivate.minimized
278+
279+ readonly property string appId: model.appId
280+ property bool animationsEnabled: true
281+ property alias title: decoratedWindow.title
282+ readonly property string appName: model.name
283+ property bool visuallyMaximized: false
284+ property bool visuallyMinimized: false
285+
286+ onFocusChanged: {
287+ if (focus && ApplicationManager.focusedApplicationId !== appId) {
288+ ApplicationManager.focusApplication(appId);
295289 }
290+ }
296291
297− onVisuallyMaximizedChanged: priv.updateForegroundMaximizedApp()
298−
299− visible: !visuallyMinimized &&
300− !greeter.fullyShown &&
301− (priv.foregroundMaximizedAppZ === -1 || priv.foregroundMaximizedAppZ <= z) ||
302− (spread.state == "altTab" && index === spread.highlightedIndex)
303−
304− Binding {
305− target: ApplicationManager.get(index)
306− property: "requestedState"
307− // TODO: figure out some lifecycle policy, like suspending minimized apps
308− // if running on a tablet or something.
309− // TODO: If the device has a dozen suspended apps because it was running
310− // in staged mode, when it switches to Windowed mode it will suddenly
311− // resume all those apps at once. We might want to avoid that.
312− value: ApplicationInfoInterface.RequestedRunning // Always running for now
313− }
292+ onVisuallyMaximizedChanged: priv.updateForegroundMaximizedApp()
293+
294+ visible: !visuallyMinimized &&
295+ !greeter.fullyShown &&
296+ (priv.foregroundMaximizedAppZ === -1 || priv.foregroundMaximizedAppZ <= z) ||
297+ decoratedWindow.fullscreen ||
298+ (spread.state == "altTab" && index === spread.highlightedIndex)
299+
300+ Binding {
301+ target: ApplicationManager.get(index)
302+ property: "requestedState"
303+ // TODO: figure out some lifecycle policy, like suspending minimized apps
304+ // if running on a tablet or something.
305+ // TODO: If the device has a dozen suspended apps because it was running
306+ // in staged mode, when it switches to Windowed mode it will suddenly
307+ // resume all those apps at once. We might want to avoid that.
308+ value: ApplicationInfoInterface.RequestedRunning // Always running for now
309+ }
314310
315− function maximize(animated) {
316− animationsEnabled = (animated === undefined) || animated;
317− appDelegatePrivate.minimized = false;
318− appDelegatePrivate.maximized = true;
319− appDelegatePrivate.maximizedLeft = false;
320− appDelegatePrivate.maximizedRight = false;
321− }
322− function maximizeLeft() {
323− appDelegatePrivate.minimized = false;
324− appDelegatePrivate.maximized = false;
325− appDelegatePrivate.maximizedLeft = true;
326− appDelegatePrivate.maximizedRight = false;
327− }
328− function maximizeRight() {
329− appDelegatePrivate.minimized = false;
330− appDelegatePrivate.maximized = false;
331− appDelegatePrivate.maximizedLeft = false;
332− appDelegatePrivate.maximizedRight = true;
333− }
334− function minimize(animated) {
335− animationsEnabled = (animated === undefined) || animated;
336− appDelegatePrivate.minimized = true;
337− }
338− function restoreFromMaximized(animated) {
339− animationsEnabled = (animated === undefined) || animated;
340− appDelegatePrivate.minimized = false;
341− appDelegatePrivate.maximized = false;
342− appDelegatePrivate.maximizedLeft = false;
343− appDelegatePrivate.maximizedRight = false;
344− }
345− function restore(animated) {
346− animationsEnabled = (animated === undefined) || animated;
347− appDelegatePrivate.minimized = false;
348− if (maximized)
349− maximize();
350− else if (maximizedLeft)
351− maximizeLeft();
352− else if (maximizedRight)
353− maximizeRight();
354− ApplicationManager.focusApplication(appId);
355− }
311+ function maximize(animated) {
312+ animationsEnabled = (animated === undefined) || animated;
313+ appDelegatePrivate.minimized = false;
314+ appDelegatePrivate.maximized = true;
315+ appDelegatePrivate.maximizedLeft = false;
316+ appDelegatePrivate.maximizedRight = false;
317+ }
318+ function maximizeLeft() {
319+ appDelegatePrivate.minimized = false;
320+ appDelegatePrivate.maximized = false;
321+ appDelegatePrivate.maximizedLeft = true;
322+ appDelegatePrivate.maximizedRight = false;
323+ }
324+ function maximizeRight() {
325+ appDelegatePrivate.minimized = false;
326+ appDelegatePrivate.maximized = false;
327+ appDelegatePrivate.maximizedLeft = false;
328+ appDelegatePrivate.maximizedRight = true;
329+ }
330+ function minimize(animated) {
331+ animationsEnabled = (animated === undefined) || animated;
332+ appDelegatePrivate.minimized = true;
333+ }
334+ function restoreFromMaximized(animated) {
335+ animationsEnabled = (animated === undefined) || animated;
336+ appDelegatePrivate.minimized = false;
337+ appDelegatePrivate.maximized = false;
338+ appDelegatePrivate.maximizedLeft = false;
339+ appDelegatePrivate.maximizedRight = false;
340+ }
341+ function restore(animated) {
342+ animationsEnabled = (animated === undefined) || animated;
343+ appDelegatePrivate.minimized = false;
344+ if (maximized)
345+ maximize();
346+ else if (maximizedLeft)
347+ maximizeLeft();
348+ else if (maximizedRight)
349+ maximizeRight();
350+ ApplicationManager.focusApplication(appId);
351+ }
356352
357− states: [
358− State {
359− name: "fullscreen"; when: decoratedWindow.fullscreen
360− extend: "maximized"
361− PropertyChanges {
362− target: appDelegate;
363− y: -PanelState.panelHeight
364− }
365− },
366− State {
367− name: "normal";
368− when: !appDelegate.maximized && !appDelegate.minimized
369− && !appDelegate.maximizedLeft && !appDelegate.maximizedRight
370− PropertyChanges {
371− target: appDelegate;
372− visuallyMinimized: false;
373− visuallyMaximized: false
374− }
375− },
376− State {
377− name: "maximized"; when: appDelegate.maximized && !appDelegate.minimized
378− PropertyChanges {
379− target: appDelegate;
380− x: 0; y: 0;
381− requestedWidth: appContainer.width; requestedHeight: appContainer.height;
382− visuallyMinimized: false;
383− visuallyMaximized: true
384− }
385− },
386− State {
387− name: "maximizedLeft"; when: appDelegate.maximizedLeft && !appDelegate.minimized
388− PropertyChanges { target: appDelegate; x: 0; y: PanelState.panelHeight;
389− requestedWidth: appContainer.width/2; requestedHeight: appContainer.height - PanelState.panelHeight }
390− },
391− State {
392− name: "maximizedRight"; when: appDelegate.maximizedRight && !appDelegate.minimized
393− PropertyChanges { target: appDelegate; x: appContainer.width/2; y: PanelState.panelHeight;
394− requestedWidth: appContainer.width/2; requestedHeight: appContainer.height - PanelState.panelHeight }
395− },
396− State {
397− name: "minimized"; when: appDelegate.minimized
398− PropertyChanges {
399− target: appDelegate;
400− x: -appDelegate.width / 2;
401− scale: units.gu(5) / appDelegate.width;
402− opacity: 0
403− visuallyMinimized: true;
404− visuallyMaximized: false
405− }
353+ states: [
354+ State {
355+ name: "fullscreen"; when: decoratedWindow.fullscreen
356+ PropertyChanges {
357+ target: appDelegate;
358+ x: 0; y: -PanelState.panelHeight
359+ requestedWidth: appContainer.width; requestedHeight: appContainer.height;
406360 }
407− ]
408− transitions: [
409− Transition {
410− to: "normal"
411− enabled: appDelegate.animationsEnabled
412− PropertyAction { target: appDelegate; properties: "visuallyMinimized,visuallyMaximized" }
361+ },
362+ State {
363+ name: "normal";
364+ when: !appDelegate.maximized && !appDelegate.minimized
365+ && !appDelegate.maximizedLeft && !appDelegate.maximizedRight
366+ PropertyChanges {
367+ target: appDelegate;
368+ visuallyMinimized: false;
369+ visuallyMaximized: false
370+ }
371+ },
372+ State {
373+ name: "maximized"; when: appDelegate.maximized && !appDelegate.minimized
374+ PropertyChanges {
375+ target: appDelegate;
376+ x: root.leftMargin; y: 0;
377+ requestedWidth: appContainer.width - root.leftMargin; requestedHeight: appContainer.height;
378+ visuallyMinimized: false;
379+ visuallyMaximized: true
380+ }
381+ },
382+ State {
383+ name: "maximizedLeft"; when: appDelegate.maximizedLeft && !appDelegate.minimized
384+ PropertyChanges { target: appDelegate; x: root.leftMargin; y: PanelState.panelHeight;
385+ requestedWidth: (appContainer.width - root.leftMargin)/2; requestedHeight: appContainer.height - PanelState.panelHeight }
386+ },
387+ State {
388+ name: "maximizedRight"; when: appDelegate.maximizedRight && !appDelegate.minimized
389+ PropertyChanges { target: appDelegate; x: (appContainer.width + root.leftMargin)/2; y: PanelState.panelHeight;
390+ requestedWidth: (appContainer.width - root.leftMargin)/2; requestedHeight: appContainer.height - PanelState.panelHeight }
391+ },
392+ State {
393+ name: "minimized"; when: appDelegate.minimized
394+ PropertyChanges {
395+ target: appDelegate;
396+ x: -appDelegate.width / 2;
397+ scale: units.gu(5) / appDelegate.width;
398+ opacity: 0
399+ visuallyMinimized: true;
400+ visuallyMaximized: false
401+ }
402+ }
403+ ]
404+ transitions: [
405+ Transition {
406+ to: "normal"
407+ enabled: appDelegate.animationsEnabled
408+ PropertyAction { target: appDelegate; properties: "visuallyMinimized,visuallyMaximized" }
409+ UbuntuNumberAnimation { target: appDelegate; properties: "x,y,opacity,requestedWidth,requestedHeight,scale"; duration: UbuntuAnimation.FastDuration }
410+ },
411+ Transition {
412+ to: "minimized"
413+ enabled: appDelegate.animationsEnabled
414+ PropertyAction { target: appDelegate; property: "visuallyMaximized" }
415+ SequentialAnimation {
413416 UbuntuNumberAnimation { target: appDelegate; properties: "x,y,opacity,requestedWidth,requestedHeight,scale"; duration: UbuntuAnimation.FastDuration }
414− },
415− Transition {
416− to: "minimized"
417− enabled: appDelegate.animationsEnabled
418− PropertyAction { target: appDelegate; property: "visuallyMaximized" }
419− SequentialAnimation {
420− UbuntuNumberAnimation { target: appDelegate; properties: "x,y,opacity,requestedWidth,requestedHeight,scale"; duration: UbuntuAnimation.FastDuration }
421− PropertyAction { target: appDelegate; property: "visuallyMinimized" }
422− ScriptAction {
423− script: {
424− if (appDelegate.minimized) {
425− priv.focusNext();
426− }
417+ PropertyAction { target: appDelegate; property: "visuallyMinimized" }
418+ ScriptAction {
419+ script: {
420+ if (appDelegate.minimized) {
421+ priv.focusNext();
427422 }
428423 }
429424 }
430− },
431− Transition {
432− to: "*" //maximized and fullscreen
433− enabled: appDelegate.animationsEnabled
434− PropertyAction { target: appDelegate; property: "visuallyMinimized" }
435− SequentialAnimation {
436− UbuntuNumberAnimation { target: appDelegate; properties: "x,y,opacity,requestedWidth,requestedHeight,scale"; duration: UbuntuAnimation.FastDuration }
437− PropertyAction { target: appDelegate; property: "visuallyMaximized" }
438− }
439425 }
440− ]
441−
442− Binding {
443− id: previewBinding
444− target: appDelegate
445− property: "z"
446− value: ApplicationManager.count + 1
447− when: index == spread.highlightedIndex && blurLayer.ready
426+ },
427+ Transition {
428+ to: "*" //maximized and fullscreen
429+ enabled: appDelegate.animationsEnabled
430+ PropertyAction { target: appDelegate; property: "visuallyMinimized" }
431+ SequentialAnimation {
432+ UbuntuNumberAnimation { target: appDelegate; properties: "x,y,opacity,requestedWidth,requestedHeight,scale"; duration: UbuntuAnimation.FastDuration }
433+ PropertyAction { target: appDelegate; property: "visuallyMaximized" }
434+ }
448435 }
436+ ]
437+
438+ Binding {
439+ id: previewBinding
440+ target: appDelegate
441+ property: "z"
442+ value: ApplicationManager.count + 1
443+ when: index == spread.highlightedIndex && blurLayer.ready
444+ }
449445
450− WindowResizeArea {
451− objectName: "windowResizeArea"
452− target: appDelegate
453− minWidth: units.gu(10)
454− minHeight: units.gu(10)
455− borderThickness: units.gu(2)
456− windowId: model.appId // FIXME: Change this to point to windowId once we have such a thing
457− screenWidth: appContainer.width
458− screenHeight: appContainer.height
459−
460− onPressed: { ApplicationManager.focusApplication(model.appId) }
461− }
446+ WindowResizeArea {
447+ objectName: "windowResizeArea"
448+ target: appDelegate
449+ minWidth: units.gu(10)
450+ minHeight: units.gu(10)
451+ borderThickness: units.gu(2)
452+ windowId: model.appId // FIXME: Change this to point to windowId once we have such a thing
453+ screenWidth: appContainer.width
454+ screenHeight: appContainer.height
455+ leftMargin: root.leftMargin
456+
457+ onPressed: { ApplicationManager.focusApplication(model.appId) }
458+ }
462459
463− DecoratedWindow {
464− id: decoratedWindow
465− objectName: "decoratedWindow"
466− anchors.left: appDelegate.left
467− anchors.top: appDelegate.top
468− application: ApplicationManager.get(index)
469− active: ApplicationManager.focusedApplicationId === model.appId
470− focus: true
471−
472− onClose: ApplicationManager.stopApplication(model.appId)
473− onMaximize: appDelegate.maximized || appDelegate.maximizedLeft || appDelegate.maximizedRight
474− ? appDelegate.restoreFromMaximized() : appDelegate.maximize()
475− onMinimize: appDelegate.minimize()
476− onDecorationPressed: { ApplicationManager.focusApplication(model.appId) }
477− }
460+ DecoratedWindow {
461+ id: decoratedWindow
462+ objectName: "decoratedWindow"
463+ anchors.left: appDelegate.left
464+ anchors.top: appDelegate.top
465+ application: ApplicationManager.get(index)
466+ active: ApplicationManager.focusedApplicationId === model.appId
467+ focus: true
468+
469+ onClose: ApplicationManager.stopApplication(model.appId)
470+ onMaximize: appDelegate.maximized || appDelegate.maximizedLeft || appDelegate.maximizedRight
471+ ? appDelegate.restoreFromMaximized() : appDelegate.maximize()
472+ onMinimize: appDelegate.minimize()
473+ onDecorationPressed: { ApplicationManager.focusApplication(model.appId) }
478474 }
479475 }
480476 }
@@ -482,8 +478,8 @@ AbstractStage {
482478
483479 BlurLayer {
484480 id: blurLayer
485− anchors.fill: stageContainer
486− source: stageContainer
481+ anchors.fill: appContainer
482+ source: appContainer
487483 visible: false
488484 }
489485
@@ -534,7 +530,7 @@ AbstractStage {
534530 DesktopSpread {
535531 id: spread
536532 objectName: "spread"
537− anchors.fill: stageContainer
533+ anchors.fill: appContainer
538534 workspace: appContainer
539535 focus: state == "altTab"
540536 altTabPressed: root.altTabPressed
qml/Stages/WindowResizeArea.qml+3−2
@@ -40,6 +40,7 @@ MouseArea {
4040 property int defaultHeight: units.gu(50)
4141 property int screenWidth: 0
4242 property int screenHeight: 0
43+ property int leftMargin: 0
4344
4445 QtObject {
4546 id: priv
@@ -72,9 +73,9 @@ MouseArea {
7273 var windowGeometry = windowStateStorage.getGeometry(root.windowId,
7374 Qt.rect(target.x, target.y, defaultWidth, defaultHeight));
7475
75− target.requestedWidth = Math.min(Math.max(windowGeometry.width, d.minimumWidth), screenWidth);
76+ target.requestedWidth = Math.min(Math.max(windowGeometry.width, d.minimumWidth), screenWidth - root.leftMargin);
7677 target.requestedHeight = Math.min(Math.max(windowGeometry.height, d.minimumHeight), root.screenHeight - PanelState.panelHeight);
77− target.x = Math.max(Math.min(windowGeometry.x, root.screenWidth - target.requestedWidth), 0)
78+ target.x = Math.max(Math.min(windowGeometry.x, root.screenWidth - root.leftMargin - target.requestedWidth), root.leftMargin)
7879 target.y = Math.max(Math.min(windowGeometry.y, root.screenHeight - target.requestedHeight), PanelState.panelHeight)
7980
8081 var windowState = windowStateStorage.getState(root.windowId, WindowStateStorage.WindowStateNormal)
tests/qmltests/tst_Shell.qml+30−25
@@ -2113,25 +2113,50 @@ Rectangle {
21132113 tryCompare(launcher, "focus", true)
21142114 }
21152115
2116− function test_lockedOutLauncherShrinksStage() {
2116+ function test_lockedOutLauncherAddsMarginsToMaximized() {
21172117 loadShell("desktop");
21182118 shell.usageScenario = "desktop";
21192119 waitForRendering(shell);
2120−
21212120 var appContainer = findChild(shell, "appContainer");
21222121 var launcher = findChild(shell, "launcher");
21232122
2123+ var app = ApplicationManager.startApplication("music-app");
2124+ waitUntilAppWindowIsFullyLoaded(app);
2125+ var appDelegate = findChild(appContainer, "appDelegate_music-app");
2126+ appDelegate.maximize();
2127+ tryCompare(appDelegate, "visuallyMaximized", true);
2128+ waitForRendering(shell);
2129+
21242130 GSettingsController.setAutohideLauncher(true);
21252131 waitForRendering(shell)
2126− var hiddenSize = appContainer.width;
2132+ var hiddenSize = appDelegate.width;
21272133
21282134 GSettingsController.setAutohideLauncher(false);
21292135 waitForRendering(shell)
2130− var shownSize = appContainer.width;
2136+ var shownSize = appDelegate.width;
21312137
21322138 compare(shownSize + launcher.panelWidth, hiddenSize);
21332139 }
21342140
2141+ function test_fullscreenAppHidesLockedOutLauncher() {
2142+ loadShell("desktop");
2143+ shell.usageScenario = "desktop";
2144+
2145+ var launcher = findChild(shell, "launcher");
2146+ var launcherPanel = findChild(launcher, "launcherPanel");
2147+
2148+ GSettingsController.setAutohideLauncher(false);
2149+ waitForRendering(shell)
2150+
2151+ tryCompare(launcher, "lockedVisible", true);
2152+
2153+ var cameraApp = ApplicationManager.startApplication("camera-app");
2154+ waitUntilAppWindowIsFullyLoaded(cameraApp);
2155+
2156+ tryCompare(launcher, "lockedVisible", false);
2157+ }
2158+
2159+
21352160 function test_inputEventsOnEdgesEndUpInAppSurface_data() {
21362161 return [
21372162 { tag: "phone", repeaterName: "spreadRepeater" },
@@ -2143,7 +2168,7 @@ Rectangle {
21432168 function test_inputEventsOnEdgesEndUpInAppSurface(data) {
21442169 loadShell(data.tag);
21452170 shell.usageScenario = data.tag;
2146−
2171+ waitForRendering(shell);
21472172 swipeAwayGreeter();
21482173
21492174 // Let's open a fullscreen app
@@ -2173,25 +2198,5 @@ Rectangle {
21732198 compare(topmostSurfaceItem.touchPressCount, 2);
21742199 compare(topmostSurfaceItem.touchReleaseCount, 2);
21752200 }
2176−
2177− function test_fullscreenAppHidesLockedOutLauncher() {
2178− loadShell("desktop");
2179− shell.usageScenario = "desktop";
2180− waitForRendering(shell);
2181−
2182− var appContainer = findChild(shell, "appContainer");
2183− var launcher = findChild(shell, "launcher");
2184− var launcherPanel = findChild(launcher, "launcherPanel");
2185−
2186− GSettingsController.setAutohideLauncher(false);
2187− waitForRendering(shell)
2188−
2189− tryCompare(appContainer, "width", shell.width - launcherPanel.width);
2190−
2191− var cameraApp = ApplicationManager.startApplication("camera-app");
2192− waitUntilAppWindowIsFullyLoaded(cameraApp);
2193−
2194− tryCompare(appContainer, "width", shell.width);
2195− }
21962201 }
21972202}