@@ -19,6 +19,7 @@ import AccountsService 0.1
1919import LightDM 0.1 as LightDM
2020import Ubuntu.Components 1.1
2121import Ubuntu.SystemImage 0.1
22+import Unity.Connectivity 0.1
2223import Unity.Launcher 0.1
2324import "../Components"
2425
@@ -56,6 +57,11 @@ Showable {
5657 signal sessionStarted()
5758 signal emergencyCall()
5859
60+ function forceShow() {
61+ showNow();
62+ loader.item.reset();
63+ }
64+
5965 function notifyAppFocused(appId) {
6066 if (!active) {
6167 return;
@@ -120,9 +126,11 @@ Showable {
120126 StandardAnimation {}
121127 }
122128
123− function selectUser(uid) {
129+ function selectUser(uid, reset) {
124130 d.waiting = true;
125− loader.item.reset();
131+ if (reset) {
132+ loader.item.reset();
133+ }
126134 currentIndex = uid;
127135 var user = LightDM.Users.data(uid, LightDM.UserRoles.NameRole);
128136 AccountsService.user = user;
@@ -162,6 +170,10 @@ Showable {
162170 }
163171 }
164172
173+ Component.onCompleted: {
174+ Connectivity.unlockAllModems();
175+ }
176+
165177 Timer {
166178 id: forcedDelayTimer
167179 interval: 1000 * 60
@@ -192,14 +204,14 @@ Showable {
192204 onLoaded: {
193205 root.lockedApp = "";
194206 root.forceActiveFocus();
195− d.selectUser(d.currentIndex);
207+ d.selectUser(d.currentIndex, true);
196208 LightDM.Infographic.readyForDataChange();
197209 }
198210
199211 Connections {
200212 target: loader.item
201213 onSelected: {
202− d.selectUser(index);
214+ d.selectUser(index, true);
203215 }
204216 onResponded: {
205217 if (root.locked) {
@@ -284,10 +296,7 @@ Showable {
284296 Connections {
285297 target: LightDM.Greeter
286298
287− onShowGreeter: {
288− root.show();
289− loader.item.reset();
290− }
299+ onShowGreeter: root.forceShow()
291300
292301 onHideGreeter: {
293302 d.login();
@@ -352,7 +361,7 @@ Showable {
352361
353362 loader.item.authenticated(false);
354363 if (!LightDM.Greeter.promptless) {
355− d.selectUser(d.currentIndex);
364+ d.selectUser(d.currentIndex, false);
356365 }
357366 }
358367 }
@@ -361,7 +370,7 @@ Showable {
361370 // Find index for requested user, if it exists
362371 for (var i = 0; i < LightDM.Users.count; i++) {
363372 if (user === LightDM.Users.data(i, LightDM.UserRoles.NameRole)) {
364− d.selectUser(i);
373+ d.selectUser(i, true);
365374 return;
366375 }
367376 }