After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 699112 - Transition from desktop to locked screen looks broken
Transition from desktop to locked screen looks broken
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: lock-screen
3.8.x
Other Linux
: Normal normal
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
3.10
: 697493 699494 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2013-04-28 10:49 UTC by Michael Monreal
Modified: 2013-08-20 20:04 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
ScreenShield: switch resetLockScreen to accept keyword arguments (2.42 KB, patch)
2013-05-12 16:10 UTC, Giovanni Campagna
reviewed Details | Review
Lightbox: have animation times passed as parameters to show() and hide() (4.93 KB, patch)
2013-05-12 16:10 UTC, Giovanni Campagna
accepted-commit_now Details | Review
ScreenShield: fade the screen to black when locking manually (6.00 KB, patch)
2013-05-12 16:10 UTC, Giovanni Campagna
none Details | Review
ScreenShield: fade the screen to black when locking manually (8.33 KB, patch)
2013-05-12 18:05 UTC, Giovanni Campagna
none Details | Review
ScreenShield: fade the screen to black when locking manually (9.17 KB, patch)
2013-06-04 17:03 UTC, Giovanni Campagna
needs-work Details | Review
ScreenShield: fade the screen to black when locking manually (9.17 KB, patch)
2013-07-14 13:13 UTC, Giovanni Campagna
none Details | Review
ScreenShield: switch resetLockScreen to accept keyword arguments (2.36 KB, patch)
2013-08-16 20:39 UTC, Giovanni Campagna
committed Details | Review
Lightbox: have animation times passed as parameters to show() and hide() (5.09 KB, patch)
2013-08-16 20:40 UTC, Giovanni Campagna
committed Details | Review
ScreenShield: fade the screen to black when locking manually (9.18 KB, patch)
2013-08-16 20:40 UTC, Giovanni Campagna
none Details | Review
ScreenShield: fade the screen to black when locking manually (10.31 KB, patch)
2013-08-17 17:43 UTC, Giovanni Campagna
committed Details | Review

Description Michael Monreal 2013-04-28 10:49:19 UTC
In 3.8, if you manually lock the screen, first the "shield" rolls down and after this animation is finished, the screen suddenly turns black, which I first expected to be a bug, but I guess the screen is supposed to turn black?

IMHO it would look better if the screen would fade to black during the shield rolldown animation.
Comment 1 Florian Müllner 2013-04-28 11:02:13 UTC
(In reply to comment #0)
> IMHO it would look better if the screen would fade to black during the shield
> rolldown animation.

That, or fade after the shield animation and before blanking the screen ...

In any case, let's try to get some design feedback.
Comment 2 Jakub Steiner 2013-04-28 14:41:44 UTC
I like Florian's suggestion. Very rapid curtain fall followed by a fade to black in about 500ms
Comment 3 Florian Müllner 2013-05-02 21:49:38 UTC
*** Bug 699494 has been marked as a duplicate of this bug. ***
Comment 4 Florian Müllner 2013-05-02 21:50:34 UTC
Jon in bug 699494:

My recommendation is to:

 * Lower the shield with an animation (to provide feedback on the lock action)
 * Take a beat
 * Quickly animate the brightness to zero (just enough to round off the edge of
the discontinuity)
Comment 5 Giovanni Campagna 2013-05-12 15:29:19 UTC
I don't think we can animate the actual brightness: for one, the minimum brightness supported by HW can still be very high, or the display might be external, in which case we don't control it.

We can fade to black, like what we do when inactive, but for bright LCDs you still have a jump.

Anyway, going for the fade option.
Comment 6 Giovanni Campagna 2013-05-12 16:10:20 UTC
Created attachment 243926 [details] [review]
ScreenShield: switch resetLockScreen to accept keyword arguments

Having two booleans as argument is just confusing.
Comment 7 Giovanni Campagna 2013-05-12 16:10:25 UTC
Created attachment 243927 [details] [review]
Lightbox: have animation times passed as parameters to show() and hide()

This way it is possible to use the same lightbox with different
times.
Comment 8 Giovanni Campagna 2013-05-12 16:10:31 UTC
Created attachment 243928 [details] [review]
ScreenShield: fade the screen to black when locking manually

When locking manually (or locking with an animation), fade the
screen to black after a small timeout. This provides a smoother
experience, instead of abruptly turning off the screen.
Comment 9 Giovanni Campagna 2013-05-12 18:05:31 UTC
Created attachment 243937 [details] [review]
ScreenShield: fade the screen to black when locking manually

When locking manually (or locking with an animation), fade the
screen to black after a small timeout. This provides a smoother
experience, instead of abruptly turning off the screen.
Comment 10 Giovanni Campagna 2013-06-04 17:03:24 UTC
Created attachment 246019 [details] [review]
ScreenShield: fade the screen to black when locking manually

When locking manually (or locking with an animation), fade the
screen to black after a small timeout. This provides a smoother
experience, instead of abruptly turning off the screen.
Comment 11 drago01 2013-06-23 08:53:03 UTC
Review of attachment 243926 [details] [review]:

::: js/ui/screenShield.js
@@ +933,3 @@
     },
 
+    _resetLockScreen: function(params) {

Shouldn't we have some default values like we always do when using params?
Comment 12 drago01 2013-06-23 08:54:27 UTC
Review of attachment 243927 [details] [review]:

LG.
Comment 13 Pacho Ramos 2013-06-23 10:26:08 UTC
*** Bug 697493 has been marked as a duplicate of this bug. ***
Comment 14 Giovanni Campagna 2013-07-04 15:26:01 UTC
(In reply to comment #11)
> Review of attachment 243926 [details] [review]:
> 
> ::: js/ui/screenShield.js
> @@ +933,3 @@
>      },
> 
> +    _resetLockScreen: function(params) {
> 
> Shouldn't we have some default values like we always do when using params?

We always pass both params (and that's the point of the patch, it makes explicit at call site what's happening), so I don't think it is necessary.
Comment 15 Jasper St. Pierre (not reading bugmail) 2013-07-09 17:01:42 UTC
Review of attachment 246019 [details] [review]:

"ligthbox" is all throughout the code as well.

::: js/ui/screenShield.js
@@ +835,3 @@
+        //   is fully shown; at this point isLocked is false, so we just hide
+        //   the ligthbox, reset the activationTime and go back to the unlocked
+        //   desktop

I know you're reducing this from 4 to 2, but this is really confusing control flow and a giant comment here isn't helping me figure this out.
Comment 16 Giovanni Campagna 2013-07-13 15:49:58 UTC
(In reply to comment #15)
> Review of attachment 246019 [details] [review]:
> 
> "ligthbox" is all throughout the code as well.
> 
> ::: js/ui/screenShield.js
> @@ +835,3 @@
> +        //   is fully shown; at this point isLocked is false, so we just hide
> +        //   the ligthbox, reset the activationTime and go back to the
> unlocked
> +        //   desktop
> 
> I know you're reducing this from 4 to 2, but this is really confusing control
> flow and a giant comment here isn't helping me figure this out.

Do you have an idea for a better flow?
Basically, the problem is that weird stuff (loginctl unlock-session, gsd timeouts, XSync resets, laptop lid closing...) can happen at any time, so you need to be prepared to interrupt the regular flow.
Comment 17 Giovanni Campagna 2013-07-14 13:13:38 UTC
Created attachment 249118 [details] [review]
ScreenShield: fade the screen to black when locking manually

When locking manually (or locking with an animation), fade the
screen to black after a small timeout. This provides a smoother
experience, instead of abruptly turning off the screen.
Comment 18 Allan Day 2013-07-16 11:02:58 UTC
I'm afraid that this doesn't apply here.
Comment 19 Giovanni Campagna 2013-08-16 20:39:58 UTC
Created attachment 251946 [details] [review]
ScreenShield: switch resetLockScreen to accept keyword arguments

Having two booleans as argument is just confusing.
Comment 20 Giovanni Campagna 2013-08-16 20:40:05 UTC
Created attachment 251947 [details] [review]
Lightbox: have animation times passed as parameters to show() and hide()

This way it is possible to use the same lightbox with different
times.
Comment 21 Giovanni Campagna 2013-08-16 20:40:10 UTC
Created attachment 251948 [details] [review]
ScreenShield: fade the screen to black when locking manually

When locking manually (or locking with an animation), fade the
screen to black after a small timeout. This provides a smoother
experience, instead of abruptly turning off the screen.
Comment 22 Giovanni Campagna 2013-08-16 20:42:46 UTC
Rebased.

Also, me and Jasper discussed at Guadec the code flow of the screenshield in general, and in the end he agreed that it's a mess we can't get rid of it, life sucks, and everything. So it would be nice if he could approve these.

Thank you :)
Comment 23 Jasper St. Pierre (not reading bugmail) 2013-08-16 20:53:46 UTC
That's totally not what I said.
Comment 24 Giovanni Campagna 2013-08-16 20:58:46 UTC
(In reply to comment #23)
> That's totally not what I said.

But I explained why every single bit of that was needed when you reviewed the other screenshield patches, and you agreed!
Comment 25 Jasper St. Pierre (not reading bugmail) 2013-08-16 21:01:40 UTC
(In reply to comment #24)
> But I explained why every single bit of that was needed when you reviewed the
> other screenshield patches, and you agreed!

What I said that we have two different animations (lower shield, fast fade lightbox vs. slow fade lightbox, insta-lower shield), and that they should be handled by two separate flow controls rather than tied together with boolean variables determining what to do.
Comment 26 Giovanni Campagna 2013-08-17 17:43:56 UTC
Created attachment 252061 [details] [review]
ScreenShield: fade the screen to black when locking manually

When locking manually (or locking with an animation), fade the
screen to black after a small timeout. This provides a smoother
experience, instead of abruptly turning off the screen.
Comment 27 Jasper St. Pierre (not reading bugmail) 2013-08-17 18:06:33 UTC
Review of attachment 252061 [details] [review]:

Much better.
Comment 28 Jasper St. Pierre (not reading bugmail) 2013-08-17 18:06:56 UTC
Review of attachment 251947 [details] [review]:

I assume this is unnecessary now.
Comment 29 Jasper St. Pierre (not reading bugmail) 2013-08-17 18:07:20 UTC
Review of attachment 251946 [details] [review]:

Still not the greatest choice of names, but OK.
Comment 30 Giovanni Campagna 2013-08-17 18:08:15 UTC
(In reply to comment #28)
> Review of attachment 251947 [details] [review]:
> 
> I assume this is unnecessary now.

No, it's still used because I might pass the short timeout or 0, according to the animate argument.
Comment 31 Jasper St. Pierre (not reading bugmail) 2013-08-20 19:50:27 UTC
Review of attachment 251947 [details] [review]:

OK then.
Comment 32 Jasper St. Pierre (not reading bugmail) 2013-08-20 19:50:46 UTC
*** Bug 704601 has been marked as a duplicate of this bug. ***
Comment 33 Giovanni Campagna 2013-08-20 19:56:10 UTC
Attachment 251946 [details] pushed as 32613ba - ScreenShield: switch resetLockScreen to accept keyword arguments
Attachment 251947 [details] pushed as 6b8339e - Lightbox: have animation times passed as parameters to show() and hide()
Attachment 252061 [details] pushed as 2a2bcc8 - ScreenShield: fade the screen to black when locking manually
Comment 34 Allan Day 2013-08-20 20:04:01 UTC
Nice work! Thanks for squeezing this in before the freeze.