@@ -111,6 +111,8 @@ Item {
111 // This is _only_ used to expose the property to autopilot tests
111 // This is _only_ used to expose the property to autopilot tests
112 readonly property string testShellMode: shellMode
112 readonly property string testShellMode: shellMode
114+ readonly property alias greeter: greeterLoader.item
114 function activateApplication(appId) {
116 function activateApplication(appId) {
115 if (ApplicationManager.findApplication(appId)) {
117 if (ApplicationManager.findApplication(appId)) {
116 ApplicationManager.requestFocusApplication(appId);
118 ApplicationManager.requestFocusApplication(appId);
@@ -262,7 +264,9 @@ Item {
262 ? "phone"
264 ? "phone"
263 : shell.usageScenario
265 : shell.usageScenario
264 source: {
266 source: {
267+ if(shellMode === "greeter") {
268+ return "Stages/ShimStage.qml"
265− if (applicationsDisplayLoader.usageScenario === "phone") {
269+ } else if (applicationsDisplayLoader.usageScenario === "phone") {
266 return "Stages/PhoneStage.qml";
270 return "Stages/PhoneStage.qml";
267 } else if (applicationsDisplayLoader.usageScenario === "tablet") {
271 } else if (applicationsDisplayLoader.usageScenario === "tablet") {
268 return "Stages/TabletStage.qml";
272 return "Stages/TabletStage.qml";
@@ -414,50 +418,59 @@ Item {
417− Greeter {
421+ Loader {
418− id: greeter
422+ id: greeterLoader
419− objectName: "greeter"
421− hides: [launcher, panel.indicators]
422− tabletMode: shell.usageScenario !== "phone"
423− launcherOffset: launcher.progress
424− forcedUnlock: tutorial.running
425− background: shell.background
427 anchors.fill: parent
423 anchors.fill: parent
428 anchors.topMargin: panel.panelHeight
424 anchors.topMargin: panel.panelHeight
425+ sourceComponent: shellMode != "shell" ? integratedGreeter :
426+ Qt.createComponent(Qt.resolvedUrl("Greeter/ShimGreeter.qml"));
428+ item.objectName = "greeter"
430− // avoid overlapping with Launcher's edge drag area
432+ Component {
431− // FIXME: Fix TouchRegistry & friends and remove this workaround
433+ id: integratedGreeter
432− // Issue involves launcher's DDA getting disabled on a long
434+ Greeter {
434− dragHandleLeftMargin: launcher.available ? launcher.dragAreaWidth + 1 : 0
436− onSessionStarted: {
436+ hides: [launcher, panel.indicators]
437− launcher.hide();
437+ tabletMode: shell.sideStageEnabled
438− }
438+ launcherOffset: launcher.progress
439+ forcedUnlock: tutorial.running
440+ background: shell.background
442+ // avoid overlapping with Launcher's edge drag area
443+ // FIXME: Fix TouchRegistry & friends and remove this workaround
444+ // Issue involves launcher's DDA getting disabled on a long
446+ dragHandleLeftMargin: launcher.available ? launcher.dragAreaWidth + 1 : 0
440− onTease: {
452+ onTease: {
441− if (!tutorial.running) {
453+ if (!tutorial.running) {
442− launcher.tease();
454+ launcher.tease();
446− onEmergencyCall: startLockedApp("dialer-app")
458+ onEmergencyCall: startLockedApp("dialer-app")
448− Timer {
460+ Binding {
449− // See powerConnection for why this is useful
461+ target: ApplicationManager
450− id: showGreeterDelayed
462+ property: "suspended"
453− greeter.forceShow();
463+ value: greeter.shown
457− Binding {
468+ Timer {
458− target: ApplicationManager
469+ // See powerConnection for why this is useful
459− property: "suspended"
470+ id: showGreeterDelayed
460− value: greeter.shown
473+ greeter.forceShow();