Last image shown before welcome screen shown on resume

Bug #1192707 reported by Paul Larson
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Fix Released
Michael Terry

Bug Description

Image: 20130618
Device: nexus4

1. open an app, browse to a webpage, etc. Anything will do.
2. set the device down and wait for it to timeout and turn off the screen
3. press the power button to resume

At this point, the first image shown should be the welcome screen, but instead it shows the last thing that was on the screen briefly, then the welcome screen comes into view.

Bill Filler (bfiller)
Changed in touch-preview-images:
assignee: nobody → Michał Sawicz (saviq)
status: New → Confirmed
importance: Undecided → High
milestone: none → ubuntu-13.06
Michał Sawicz (saviq)
Changed in touch-preview-images:
assignee: Michał Sawicz (saviq) → Michael Terry (mterry)
Revision history for this message
Michael Terry (mterry) wrote :

So, looking at this, we could just skip the animation and trigger a show() on the greeter when the power comes back on. But there's still a race. So the best solution would be to show the greeter when the screen turns off.

But how do we know when that happens? DPMS doesn't seem to have signals (and that's an X thing anyway). Mir doesn't yet seem to have much of an API to expose that info, and I'm not sure it plans to.

GNOME exposes it over DBus via settings daemon, but we're not running that in Touch.

I guess we can monitor /sys/class/backlight/acpi_video0/actual_brightness but that seems really low level? Qt doesn't seem to abstract this at all for us. I'll dig a bit deeper, but for now, monitoring /sys is my best avenue.

Revision history for this message
Michael Terry (mterry) wrote :

Aha, this API can be used:

That, plus skipping any animation on show() should fix this. (We still need to skip the animation since there is a race even just turning screen off and on very quickly.)

Revision history for this message
Michael Terry (mterry) wrote :

I'm marking this Fix Released. The "show greeter when screen goes black, rather than when it turns on" bit was done a while ago.

The remaining "skip show animation to avoid a race condition with turning screen off/on quickly" bit doesn't seem possible. The user can turn screen off/on faster than unity8 gets and handles the signal from powerd. So even if we drop the animation, there's still a race where the user can see their dash for a split second before the greeter swipes in. Since that race still exists, it's more pleasant to at least show the animation for the greeter if the user does find themselves in that situation.

Changed in touch-preview-images:
status: Confirmed → Fix Released
Revision history for this message
Sam Bull (dreamsorcerer) wrote :

Alternatively, don't lock the screen if the user switches it back on that quickly. Pretty sure Android does this, so the phone doesn't lock until something like 10 seconds after flicking it off.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Related blueprints

Remote bug watches

Bug watches keep track of this bug in other bug trackers.