Sometimes devices don't suspend - display turns back on immediately
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Canonical System Image |
Fix Released
|
High
|
Stephen M. Webb | ||
Mir |
Fix Released
|
High
|
Andreas Pokorny | ||
0.21 |
Fix Released
|
High
|
Andreas Pokorny | ||
mir (Ubuntu) |
Fix Released
|
High
|
Andreas Pokorny | ||
unity-system-compositor (Ubuntu) |
Confirmed
|
Undecided
|
Alexandros Frantzis | ||
unity8 (Ubuntu) |
Confirmed
|
Undecided
|
Unassigned |
Bug Description
current build number: 267
device name: krillin
channel: ubuntu-
it happens also on arale.
sometimes the screen lock timeout is not honoured and the devices don't suspend when the lock timeout expires (display doesn' t turn off)
$ sudo powerd-cli list
[sudo] password for phablet:
System State Requests:
Name: com.canonical.
Steps to reproduce on arale:
1. Turn on the screen
2. Touch the circular touch button at the lower part of the device
3. Press/release the power button to turn off screen
4. Release the circular touch button
Expected results: The screen turns off and further on/off cycles work properly
Actual results: The screen stays on and attempts to turn it off fail
The touchscreen is handling the circular button and emits a key down event. When turning the screen of the touch screen device is turned off too. Mir is not aware of the touchscreen being off. So meanwhile the repeat handling kicks in and emits key events. This makes USC turn the screen back on again.
The touchscreen driver does not notice that the circular button is still held. So still no release event is sent.
We could fix this by:
- fixing the touchscreen driver to release any touch contacts or buttons pressed, when the device is turned off (something the bluetooth stack seems to do on some devices)
- sidestep the problem by making usc only react to press events as a wake trigger and make repeat and release events only reset the inactivity timer
- give mir the knowledge that the disabled output also disables the touchscreen (a connection we need to be aware of to get the mapping of touch screen coordinates onto scene coordinates right), hence remove the device and thus turn of any repeat key handling attached to that device.
Related branches
- Alberto Aguirre (community): Approve
- Brandon Schaefer (community): Approve
-
Diff: 302 lines (+133/-21)4 files modifiedsrc/server/input/default_configuration.cpp (+32/-1)
src/server/input/key_repeat_dispatcher.cpp (+34/-15)
src/server/input/key_repeat_dispatcher.h (+7/-1)
tests/unit-tests/input/test_key_repeat_dispatcher.cpp (+60/-4)
- Mir CI Bot: Approve (continuous-integration)
- Alberto Aguirre (community): Approve
- Alan Griffiths: Approve
- Kevin DuBois (community): Approve
- Cemil Azizoglu (community): Approve
-
Diff: 299 lines (+137/-21)4 files modifiedsrc/server/input/default_configuration.cpp (+37/-1)
src/server/input/key_repeat_dispatcher.cpp (+34/-15)
src/server/input/key_repeat_dispatcher.h (+7/-1)
tests/unit-tests/input/test_key_repeat_dispatcher.cpp (+59/-4)
Changed in canonical-devices-system-image: | |
assignee: | nobody → Michał Sawicz (saviq) |
status: | New → Confirmed |
Changed in canonical-devices-system-image: | |
assignee: | Michał Sawicz (saviq) → Stephen M. Webb (bregma) |
Changed in canonical-devices-system-image: | |
milestone: | none → ww08-2016 |
description: | updated |
Changed in canonical-devices-system-image: | |
milestone: | ww08-2016 → 11 |
Changed in mir: | |
assignee: | nobody → Andreas Pokorny (andreas-pokorny) |
status: | New → In Progress |
milestone: | none → 0.22.0 |
Changed in mir: | |
importance: | Undecided → High |
tags: | added: display-control |
Changed in canonical-devices-system-image: | |
status: | Confirmed → Fix Committed |
Changed in mir: | |
status: | Fix Committed → Fix Released |
Changed in canonical-devices-system-image: | |
status: | Fix Committed → Fix Released |
adding u-s-c as I'm not sure unity8 will even be involved here