@@ -313,7 +313,7 @@ Item {
313 property Item view: loader.status === Loader.Ready ? loader.item : null
313 property Item view: loader.status === Loader.Ready ? loader.item : null
315 function init() {
315 function init() {
316− view.currentIndex = 0; // break binding with text field
316+ selectIndex(0); // break binding with text field
317 selectedSpy.clear();
317 selectedSpy.clear();
318 respondedSpy.clear();
318 respondedSpy.clear();
319 teaseSpy.clear();
319 teaseSpy.clear();
@@ -343,9 +343,15 @@ Item {
343 return -1;
343 return -1;
346+ function selectIndex(i) {
347+ view.currentIndex = i;
348+ var userList = findChild(view, "userList");
349+ tryCompare(userList, "movingInternally", false);
346 function selectUser(name) {
352 function selectUser(name) {
347 var i = getIndexOf(name);
353 var i = getIndexOf(name);
348− view.currentIndex = i;
354+ selectIndex(i);
349 return i;
355 return i;
@@ -441,7 +447,8 @@ Item {
442 // Escape is used to reset the authentication, especially if PAM is unresponsive
448 // Escape is used to reset the authentication, especially if PAM is unresponsive
443 function test_escape() {
449 function test_escape() {
444− view.currentIndex = 1;
450+ selectIndex(1);
451+ selectedSpy.clear();
445 view.locked = true;
452 view.locked = true;
446 view.showPrompt("Prompt", true, true);
453 view.showPrompt("Prompt", true, true);
447 var passwordInput = findChild(view, "passwordInput");
454 var passwordInput = findChild(view, "passwordInput");