Merge lp:~mterry/unity8/greeter-focus into lp:unity8
| Status: | Superseded |
|---|---|
| Proposed branch: | lp:~mterry/unity8/greeter-focus |
| Merge into: | lp:unity8 |
| Prerequisite: | lp:~josharenson/unity8/slim_greeter_real_lightdm |
| Diff against target: |
2260 lines (+1309/-134) 43 files modified
plugins/LightDM/CMakeLists.txt (+1/-2) plugins/LightDM/FullLightDM/CMakeLists.txt (+4/-1) plugins/LightDM/Greeter.cpp (+7/-2) plugins/LightDM/Greeter.h (+3/-2) plugins/LightDM/IntegratedLightDM/CMakeLists.txt (+2/-3) plugins/LightDM/IntegratedLightDM/QLightDM/Greeter (+17/-0) plugins/LightDM/IntegratedLightDM/QLightDM/SessionsModel (+17/-0) plugins/LightDM/IntegratedLightDM/QLightDM/UsersModel (+17/-0) plugins/LightDM/IntegratedLightDM/liblightdm/CMakeLists.txt (+2/-0) plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModel.cpp (+88/-0) plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModel.h (+72/-0) plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cpp (+36/-0) plugins/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.h (+54/-0) plugins/LightDM/SessionsModel.cpp (+122/-0) plugins/LightDM/SessionsModel.h (+68/-0) plugins/LightDM/plugin.cpp (+17/-7) qml/Greeter/Greeter.qml (+28/-24) qml/Greeter/GreeterPrompt.qml (+64/-12) qml/Greeter/LoginList.qml (+27/-16) qml/Greeter/NarrowView.qml (+2/-1) qml/Greeter/WideView.qml (+4/-3) qml/Shell.qml (+5/-3) tests/mocks/LightDM/IntegratedLightDM/CMakeLists.txt (+2/-0) tests/mocks/LightDM/IntegratedLightDM/MockSessionsModel.cpp (+37/-0) tests/mocks/LightDM/IntegratedLightDM/MockSessionsModel.h (+34/-0) tests/mocks/LightDM/IntegratedLightDM/QLightDM/SessionsModel (+17/-0) tests/mocks/LightDM/IntegratedLightDM/liblightdm/CMakeLists.txt (+2/-0) tests/mocks/LightDM/IntegratedLightDM/liblightdm/Greeter.cpp (+1/-1) tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.cpp (+99/-0) tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModel.h (+72/-0) tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.cpp (+73/-0) tests/mocks/LightDM/IntegratedLightDM/liblightdm/SessionsModelPrivate.h (+59/-0) tests/mocks/LightDM/IntegratedLightDM/liblightdm/UsersModelPrivate.cpp (+22/-22) tests/mocks/LightDM/IntegratedLightDM/plugin.cpp (+11/-0) tests/plugins/LightDM/IntegratedLightDM/CMakeLists.txt (+23/-0) tests/plugins/LightDM/IntegratedLightDM/sessionsmodel.cpp (+96/-0) tests/qmltests/Greeter/TestView.qml (+0/-1) tests/qmltests/Greeter/tst_Greeter.qml (+2/-12) tests/qmltests/Greeter/tst_WideView.qml (+90/-12) tests/qmltests/Tutorial/tst_Tutorial.qml (+1/-1) tests/qmltests/tst_OrientedShell.qml (+2/-2) tests/qmltests/tst_Shell.qml (+3/-3) tests/qmltests/tst_ShellWithPin.qml (+6/-4) |
| To merge this branch: | bzr merge lp:~mterry/unity8/greeter-focus |
| Related bugs: |
| Reviewer | Review Type | Date Requested | Status |
|---|---|---|---|
| Unity8 CI Bot | continuous-integration | Needs Fixing on 2016-06-22 | |
| Unity Team | 2016-06-22 | Pending | |
|
Review via email:
|
|||
This proposal has been superseded by a proposal from 2016-06-30.
Commit Message
Fix tablet greeter focus to be always-on, no longer hiding the OSK or forcing a mouse click to type a password.
I've also squeezed some other small fixes in:
- Support Up and Down keys in user list.
- Don't accept non-digit characters when prompting for passcode (we ask OSK to show only digits, but due to bug 1586435, it shows other characters too; plus if the user has an external keyboard, they can type anything anyway).
- When prompting for a passcode in wide-view (tablet/desktop), stop at 4 digits just like we do in narrow-view.
- Don't show "Retry" during brief period before a prompt comes in from PAM.
- Don't let user drag user list if there's only one entry.
Now as for the focus changes...
One of the big reasons we lost keyboard focus before was because we set the shell to disabled whenever the greeter was "between PAM events" -- mostly so that the user can't swipe away greeter before we get our first prompt or are otherwise unsure about exactly what authentication is needed.
But disabled qml items can't be focused. So I've rejiggered things a bit. Instead of disabling the whole shell, I just disable the launcher, the indicators, and make the greeter non-swipeable.
I also do some tricks with the prompt so that it looks disabled (while we check with PAM about the password) but isn't actually. I don't want to make it look to the user that pressing backspace while they wait for PAM does anything, so after the user presses Enter, I present a fake label on top of the prompt that looks like a disabled prompt, while simultaneously hiding the prompt contents.
Description of the Change
You could mostly just test this on your desktop. Changes are all to the wide-view side of things.
* Are there any related MPs required for this MP to build/function as expected? Please list.
No
* Did you perform an exploratory manual test run of your code change and any related functionality?
Yes
* If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?
NA
* If you changed the UI, has there been a design review?
NA
| Michael Terry (mterry) wrote : | # |
| Michael Terry (mterry) wrote : | # |
OK, tests added.
| Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2496
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2497
https:/
Executed test runs:
SUCCESS: https:/
FAILURE: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
| Unity8 CI Bot (unity8-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:2498
https:/
Executed test runs:
SUCCESS: https:/
UNSTABLE: https:/
UNSTABLE: https:/
UNSTABLE: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
- 1994. By Michael Terry on 2016-06-27
-
Fix focus on greeter and various other bugs
- 1995. By Michael Terry on 2016-06-27
-
Merge from slim_greeter_
real_lightdm - 1996. By Michael Terry on 2016-06-27
-
Whoops, reset po files that got changed somehow
- 1997. By Michael Terry on 2016-06-28
-
Fix minor issue when auto-responding with a passcode
- 1998. By Michael Terry on 2016-06-29
-
Merge parent
- 1999. By Michael Terry on 2016-06-30
-
Merge sessions-model
- 2000. By Michael Terry on 2016-07-06
-
Be smoother about focus in GreeterPrompt
- 2001. By Michael Terry on 2016-07-06
-
remove unneeded check, fixes test
- 2002. By Michael Terry on 2016-07-06
-
Merge in greeter-
hide-indicators - 2003. By Michael Terry on 2016-07-07
-
Update copyrights
- 2004. By Michael Terry on 2016-07-07
-
Give wideview test focus to start
- 2005. By Michael Terry on 2016-07-08
-
Merge focus refactor from dandrader
- 2006. By Michael Terry on 2016-07-08
-
Merge tryWideView focus refactor from dandrader
- 2007. By Michael Terry on 2016-07-08
-
Make it clear in GreeterPrompt that fakeLabel is for OSK focus
- 2008. By Michael Terry on 2016-07-08
-
Fix a test

I'm going to work on some qmltests now, but this branch can be reviewed and tested in meantime.