@@ -23,6 +23,7 @@ import "../Components"
24 id: greeter
24 id: greeter
25 enabled: shown
25 enabled: shown
26+ created: greeterContentLoader.status == Loader.Ready && greeterContentLoader.item.ready
27 property url background
28 property url background
28 property bool loadContent: required
29 property bool loadContent: required
@@ -57,13 +58,13 @@ Showable {
59 function tryToUnlock() {
60 function tryToUnlock() {
60− if (greeterContentLoader.item) {
61+ if (created) {
61 greeterContentLoader.item.tryToUnlock()
62 greeterContentLoader.item.tryToUnlock()
65 function reset() {
66 function reset() {
66− if (greeterContentLoader.item) {
67+ if (created) {
67 greeterContentLoader.item.reset()
68 greeterContentLoader.item.reset()
@@ -134,12 +135,6 @@ Showable {
134 enabled: targetItem.enabled
135 enabled: targetItem.enabled
138− // While greeterContent is loading, and in case it's background fails to load
139− anchors.fill: parent
144 id: greeterContentLoader
139 id: greeterContentLoader
145 objectName: "greeterContentLoader"
140 objectName: "greeterContentLoader"
@@ -147,20 +142,11 @@ Showable {
147 property var model: LightDM.Users
142 property var model: LightDM.Users
148 property int currentIndex: 0
143 property int currentIndex: 0
149 readonly property int backgroundTopMargin: -greeter.y
144 readonly property int backgroundTopMargin: -greeter.y
150− property bool everLoaded: false
152− // We only want to be async after the first one, because during boot,
153− // if we load async, the panel will appear a bit before the greeter
154− // does. We'd rather everything appear at once. But other times,
155− // we don't want to block handling power button presses on loading the
157− asynchronous: everLoaded
159 source: loadContent ? "GreeterContent.qml" : ""
146 source: loadContent ? "GreeterContent.qml" : ""
161 onLoaded: {
148 onLoaded: {
162 greeterContentLoader.item.selected(currentIndex);
149 greeterContentLoader.item.selected(currentIndex);
166 Connections {
152 Connections {