Lock screen is unusable when some windows have a keyboard/mouse grab
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Compiz |
Fix Released
|
High
|
Marco Trevisan (Treviño) | ||
0.9.11 |
Fix Released
|
High
|
Marco Trevisan (Treviño) | ||
Unity |
Fix Released
|
High
|
Marco Trevisan (Treviño) | ||
7.2 |
Fix Released
|
High
|
Marco Trevisan (Treviño) | ||
compiz (Ubuntu) |
Fix Released
|
High
|
Marco Trevisan (Treviño) | ||
Trusty |
Fix Released
|
High
|
Unassigned | ||
unity (Ubuntu) |
Fix Released
|
High
|
Marco Trevisan (Treviño) | ||
Trusty |
Fix Released
|
High
|
Unassigned |
Bug Description
[Impact]
Some windows will grab the keyboard/mouse and when the lockscreen kicks in, this window will still have the grab and thusly, you can't enter your password in the lockscreen.
[Test case]
This will work only in the case that your lockscreen is set (from unity control center, lock pane) to lock immediately (when screen turns off).
1. Open a window that will hold the grab, such as the ssh password dialog or a virtual
machine (such as virtualbox in fullscreen).
2. Wait for the lock screen to activate [1].
3. The screen won't be locked, since it's not possible to steal drag to another window.
[Regression potential]
For the same reason of lp:49579, we can't lock the screen (yet) if something takes the grab in X, or we won't able to get input back. This is not a regression because it has never been possible in Ubuntu before, while when we tried that, it caused this bug.
A possible source of regression might be that we now try to grab/ungrab the screen (the only X reliable way for grab checking), when showing the dash/hud or the lockscreen itself, and this might slow things down a little, but from measurements done this slow down is generally about 2ms, so nothing to worry about.
* Compiz Debdiff is found at https:/
[1] You can use this to reduce the locking delay:
gsettings set org.gnome.
and resetting it with:
gsettings reset org.gnome.
-----------
Original Description:
My screen just timed out and locked when a password prompt which had a grab was displaying.
I couldn't type my password or interact with the indicators.
gnome-screensaver just refuses to lock in this situation, perhaps unity could do the same unless it's possible to remove and readd the grabs yourself, but I don't think XLib lets you do that (you can only remove your own grabs AFAIK).
TEMPORARY WORKAROUND TO LOGIN AGAIN:
Click on the guest session
Once the guest session is started log out
This takes you back to the lightdm session screen you can then login to your user session and it be in the same state
ProblemType: BugDistroRelease: Ubuntu 14.04
Package: unity 7.2.0+14.
ProcVersionSign
Uname: Linux 3.13.0-23-generic x86_64
ApportVersion: 2.14.1-0ubuntu1
Architecture: amd64
CompizPlugins: No value set for `/apps/
CrashDB: unity
CurrentDesktop: Unity
Date: Thu Apr 10 09:39:45 2014
InstallationDate: Installed on 2012-10-07 (549 days ago)
InstallationMedia: Ubuntu 12.10 "Quantal Quetzal" - Beta amd64 (20121007)
UpgradeStatus: Upgraded to trusty on 2013-05-07 (338 days ago)
Related branches
- Christopher Townsend (community): Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 12 lines (+2/-0)1 file modifiedsrc/event.cpp (+2/-0)
- PS Jenkins bot (community): Approve (continuous-integration)
- Brandon Schaefer (community): Approve
-
Diff: 42 lines (+17/-3)2 files modifiedlockscreen/LockScreenController.cpp (+2/-2)
unity-shared/PluginAdapter.cpp (+15/-1)
- Stephen M. Webb: Approve
- PS Jenkins bot (community): Approve (continuous-integration)
-
Diff: 358 lines (+106/-19)13 files modifiedcompizconfig/gsettings/src/gsettings.c (+9/-3)
compizconfig/integration/gnome/gsettings/src/ccs_gnome_integration_gsettings_integrated_setting.c (+0/-2)
debian/changelog (+26/-0)
plugins/place/src/place.cpp (+2/-0)
plugins/place/src/screen-size-change/include/screen-size-change.h (+2/-0)
plugins/place/src/screen-size-change/src/screen-size-change.cpp (+6/-3)
plugins/place/src/screen-size-change/tests/screen-size-change/src/test-place-screen-size-change.cpp (+7/-0)
plugins/resize/src/logic/include/resize-logic.h (+3/-0)
plugins/resize/src/logic/src/resize-logic.cpp (+20/-5)
src/event.cpp (+2/-0)
src/screen.cpp (+2/-3)
src/window.cpp (+26/-3)
src/window/extents/src/windowextents.cpp (+1/-0)
- Marco Trevisan (Treviño): Approve
-
Diff: 3472 lines (+1152/-478)54 files modifiedUnityCore/GnomeSessionManager.cpp (+32/-0)
UnityCore/GnomeSessionManagerImpl.h (+4/-0)
UnityCore/SessionManager.h (+4/-0)
dash/DashController.cpp (+3/-1)
debian/changelog (+59/-0)
hud/HudController.cpp (+1/-0)
launcher/AbstractLauncherIcon.h (+3/-2)
launcher/ApplicationLauncherIcon.cpp (+20/-19)
launcher/ApplicationLauncherIcon.h (+0/-1)
launcher/Launcher.cpp (+26/-10)
launcher/LauncherIcon.cpp (+7/-3)
launcher/LauncherIcon.h (+2/-1)
launcher/SwitcherView.cpp (+54/-31)
launcher/SwitcherView.h (+3/-4)
launcher/TrashLauncherIcon.cpp (+1/-0)
launcher/VolumeLauncherIcon.cpp (+1/-0)
lockscreen/LockScreenAbstractShield.h (+0/-1)
lockscreen/LockScreenController.cpp (+2/-3)
lockscreen/LockScreenShield.cpp (+0/-6)
lockscreen/LockScreenShield.h (+0/-1)
lockscreen/UserPromptView.cpp (+8/-99)
lockscreen/UserPromptView.h (+1/-13)
panel/PanelIndicatorEntryView.cpp (+7/-0)
plugins/unityshell/src/GesturalWindowSwitcher.cpp (+3/-0)
plugins/unityshell/src/GesturalWindowSwitcher.h (+1/-0)
plugins/unityshell/src/unityshell.cpp (+57/-50)
plugins/unityshell/src/unityshell.h (+2/-0)
po/POTFILES.in (+1/-0)
po/unity.pot (+70/-3)
shortcuts/ShortcutController.cpp (+4/-6)
shortcuts/ShortcutView.cpp (+113/-48)
shortcuts/ShortcutView.h (+9/-3)
shutdown/SessionButton.cpp (+30/-5)
shutdown/SessionButton.h (+5/-0)
shutdown/SessionController.cpp (+2/-0)
shutdown/SessionView.cpp (+68/-27)
shutdown/SessionView.h (+5/-0)
tests/test-gestures/LockScreenControllerMock.h (+43/-0)
tests/test-gestures/sed_script_switcher (+2/-0)
tests/test-gestures/unityshell_mock.h (+8/-1)
tests/test_lockscreen_controller.cpp (+0/-1)
tests/test_switcher_view.cpp (+1/-2)
tests/test_unity_window_view.cpp (+9/-9)
unity-shared/EMConverter.cpp (+2/-2)
unity-shared/IMTextEntry.cpp (+7/-0)
unity-shared/IMTextEntry.h (+2/-0)
unity-shared/PluginAdapter.cpp (+43/-10)
unity-shared/RawPixel.cpp (+1/-1)
unity-shared/TextInput.cpp (+178/-4)
unity-shared/TextInput.h (+19/-4)
unity-shared/UnityWindowStyle.cpp (+135/-62)
unity-shared/UnityWindowStyle.h (+35/-20)
unity-shared/UnityWindowView.cpp (+53/-25)
unity-shared/UnityWindowView.h (+6/-0)
- Unity Team: Pending requested
-
Diff: 1674 lines (+1380/-30) (has conflicts)7 files modifiedCMakeLists.txt (+5/-0)
ChangeLog (+1162/-0)
debian/changelog (+77/-26)
debian/control (+1/-1)
po/unity.pot (+70/-3)
shutdown/SessionView.cpp (+55/-0)
shutdown/SessionView.h (+10/-0)
Changed in unity: | |
importance: | Undecided → High |
description: | updated |
summary: |
- Lock screen is unusable when a ssh dialog has a keyboard/mouse grab + Lock screen is unusable when a password dialog has a keyboard/mouse grab |
Changed in unity (Ubuntu): | |
importance: | Undecided → High |
Changed in unity: | |
milestone: | none → 7.2.1 |
assignee: | nobody → Marco Trevisan (Treviño) (3v1n0) |
summary: |
- Lock screen is unusable when a password dialog has a keyboard/mouse grab + Lock screen is unusable when some windows have a keyboard/mouse grab |
Changed in unity (Ubuntu): | |
assignee: | nobody → Marco Trevisan (Treviño) (3v1n0) |
Changed in unity: | |
status: | Triaged → In Progress |
Changed in unity (Ubuntu): | |
status: | Confirmed → In Progress |
Changed in unity: | |
milestone: | 7.2.1 → 7.3.0 |
Changed in compiz: | |
status: | New → Fix Committed |
importance: | Undecided → High |
assignee: | nobody → Marco Trevisan (Treviño) (3v1n0) |
milestone: | none → 0.9.12.0 |
Changed in compiz (Ubuntu): | |
importance: | Undecided → High |
assignee: | nobody → Marco Trevisan (Treviño) (3v1n0) |
Changed in unity (Ubuntu): | |
status: | In Progress → Fix Released |
Changed in unity: | |
status: | In Progress → Fix Committed |
description: | updated |
description: | updated |
tags: |
added: verification-done removed: verification-needed |
Changed in unity: | |
status: | Fix Committed → Fix Released |
description: | updated |
tags: |
added: verification-done removed: verification-needed |
tags: |
added: verification-done removed: verification-needed |
description: | updated |
Changed in unity (Ubuntu Trusty): | |
status: | Confirmed → Fix Released |
Changed in unity: | |
status: | Fix Released → Fix Committed |
Changed in unity: | |
status: | Fix Committed → Fix Released |
Changed in compiz: | |
status: | Fix Committed → Fix Released |
Changed in compiz (Ubuntu Trusty): | |
importance: | Undecided → High |
Changed in unity (Ubuntu Trusty): | |
importance: | Undecided → High |
This happens just with the ssh password dialog. With other grabs the lock fails to start.