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 694062 - gdm => session transition doesn't look very good (gdm side)
gdm => session transition doesn't look very good (gdm side)
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: login-screen
3.4.x
Other Linux
: Normal normal
: ---
Assigned To: Ray Strode [halfline]
gnome-shell-maint
: 702961 (view as bug list)
Depends on: 682427 682429
Blocks: 682428
 
 
Reported: 2013-02-18 04:34 UTC by Ray Strode [halfline]
Modified: 2015-10-20 20:01 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
loginDialog: get rid of title label (7.27 KB, patch)
2013-02-18 04:52 UTC, Ray Strode [halfline]
committed Details | Review
loginDialog: drop animations (22.72 KB, patch)
2013-02-18 04:52 UTC, Ray Strode [halfline]
committed Details | Review
loginDialog: fade out before starting session (8.51 KB, patch)
2013-02-18 04:52 UTC, Ray Strode [halfline]
reviewed Details | Review
unlockDialog: move user widget into separate file (9.58 KB, patch)
2013-02-18 04:52 UTC, Ray Strode [halfline]
needs-work Details | Review
loginDialog: use user widget when doing verification (7.66 KB, patch)
2013-02-18 04:52 UTC, Ray Strode [halfline]
reviewed Details | Review
loginDialog: move prompt hiding code to hidePrompt (3.52 KB, patch)
2013-02-18 04:52 UTC, Ray Strode [halfline]
accepted-commit_now Details | Review
loginDialog: put "Not Listed?" button and user list in separate container (12.28 KB, patch)
2013-02-18 04:52 UTC, Ray Strode [halfline]
reviewed Details | Review
loginDialog: add cross fade animation between states (9.12 KB, patch)
2013-02-18 04:52 UTC, Ray Strode [halfline]
reviewed Details | Review
loginDialog: fade out before starting session (8.84 KB, patch)
2013-02-19 03:36 UTC, Ray Strode [halfline]
committed Details | Review
unlockDialog: move user widget into separate file (11.74 KB, patch)
2013-02-19 03:36 UTC, Ray Strode [halfline]
committed Details | Review
loginDialog: use user widget when doing verification (9.31 KB, patch)
2013-02-19 03:36 UTC, Ray Strode [halfline]
committed Details | Review
loginDialog: move prompt hiding code to hidePrompt (3.52 KB, patch)
2013-02-19 03:36 UTC, Ray Strode [halfline]
committed Details | Review
loginDialog: put "Not Listed?" button and user list in separate container (11.99 KB, patch)
2013-02-19 03:36 UTC, Ray Strode [halfline]
committed Details | Review
loginDialog: add cross fade animation between states (8.85 KB, patch)
2013-02-19 03:36 UTC, Ray Strode [halfline]
committed Details | Review

Description Ray Strode [halfline] 2013-02-18 04:34:10 UTC
+++ This bug was initially created as a clone of Bug #682429 +++

Bug 682429 is getting simplified to cover just the background / user session side of the gdm => session transition.  This bug is for the gdm side.
Comment 1 Ray Strode [halfline] 2013-02-18 04:52:20 UTC
Created attachment 236524 [details] [review]
loginDialog: get rid of title label

the login screen currently says "Sign In" at the top of it.

The latest mock ups don't have that.

This commit drops it.
Comment 2 Ray Strode [halfline] 2013-02-18 04:52:22 UTC
Created attachment 236525 [details] [review]
loginDialog: drop animations

The latest mockups don't animate between states by
resizing actors. Instead, crossfades are employed.

This commit strips out many of the existing animations
as a first step toward implementing the new ones.
Comment 3 Ray Strode [halfline] 2013-02-18 04:52:26 UTC
Created attachment 236526 [details] [review]
loginDialog: fade out before starting session

Right now we very abruptly kill the login screen
and start the users session without any transition
out.

This commit introduces a fade out of the dialog and
panels.
Comment 4 Ray Strode [halfline] 2013-02-18 04:52:28 UTC
Created attachment 236527 [details] [review]
unlockDialog: move user widget into separate file

The user widget is the username and avatar shown on
the unlock dialog.

The login dialog has something very similar.

This commit separates the user widget out to its own
file, so we can use it from the login dialog in a
later commit.
Comment 5 Ray Strode [halfline] 2013-02-18 04:52:32 UTC
Created attachment 236528 [details] [review]
loginDialog: use user widget when doing verification

Right now, when a user item is clicked we remove all other users from
the list and position the item in the appropriate place on screen.

Ultimately, we're going to want to crossfade from the fully populated
list to the user prompt.  Since we're going to need to show the user
avatar in two different positions we can't simply move it.

This commit leaves the user item for the user list, and instead shows
a UserWidget actor during user verification, in the same way the
unlock dialog shows a UserWidget actor during reauthentication.
Comment 6 Ray Strode [halfline] 2013-02-18 04:52:35 UTC
Created attachment 236529 [details] [review]
loginDialog: move prompt hiding code to hidePrompt

The sessionList and the prompt hint are all really
part of the prompt, so we should have the code that
hides those things in hidePrompt instead of in
showUserList.

This commit does that.
Comment 7 Ray Strode [halfline] 2013-02-18 04:52:39 UTC
Created attachment 236530 [details] [review]
loginDialog: put "Not Listed?" button and user list in separate container

The user list and the "Not Listed?" button get shown and hidden at the
same time, so we can simplify the code by putting them in a new
subcontainer.

This commit creates a userSelectionBox container that both actors get
put in, and changes all the code that shows and hides these actors to
show and hide userSelectionBox instead.
Comment 8 Ray Strode [halfline] 2013-02-18 04:52:43 UTC
Created attachment 236531 [details] [review]
loginDialog: add cross fade animation between states

This commit adds a crossfade between the user selection state
and the user verification state.
Comment 9 Jasper St. Pierre (not reading bugmail) 2013-02-18 04:58:03 UTC
Review of attachment 236524 [details] [review]:

OK.
Comment 10 Jasper St. Pierre (not reading bugmail) 2013-02-18 04:59:15 UTC
Review of attachment 236525 [details] [review]:

Nice.

::: js/gdm/loginDialog.js
@@ +1067,2 @@
     _onUserListActivated: function(activatedItem) {
         let userName;

Unused?
Comment 11 Jasper St. Pierre (not reading bugmail) 2013-02-18 05:02:40 UTC
Review of attachment 236526 [details] [review]:

::: js/gdm/loginDialog.js
@@ +917,3 @@
+                           transition: 'easeOutQuad',
+                           onUpdate: function() {
+                               Main.layoutManager.panelBox.opacity = this.dialogLayout.opacity;

I wonder if you should just fade in a MetaBackgroundActor on top. Seems a little iffy that this is all we're ever going to need.

Like, sometimes there's a notification that comes up from the bottom about some status indication. That might hang on screen as well.

@@ +922,3 @@
+                           onComplete: function() {
+                               Mainloop.idle_add(Lang.bind(this, function() {
+                                   this._greeter.call_start_session_when_ready_sync(serviceName, true, null);

return false;
Comment 12 Jasper St. Pierre (not reading bugmail) 2013-02-18 05:04:55 UTC
Review of attachment 236527 [details] [review]:

You forgot to add the file???
Comment 13 Jasper St. Pierre (not reading bugmail) 2013-02-18 06:15:46 UTC
Review of attachment 236528 [details] [review]:

It would be nice if we could use the entire UnlockDialog, but that's a cleanup for another day...

::: js/gdm/loginDialog.js
@@ +1089,3 @@
     },
 
+    _setPromptUserFromItem: function(item) {

This is so minor I would just inline it.

@@ -1084,2 @@
         this._userList.actor.reactive = false;
-        this._userList.hideItemsExcept(activatedItem);

You can remove this method now...
Comment 14 Jasper St. Pierre (not reading bugmail) 2013-02-18 06:16:04 UTC
Review of attachment 236529 [details] [review]:

OK.
Comment 15 Jasper St. Pierre (not reading bugmail) 2013-02-18 06:17:24 UTC
Review of attachment 236530 [details] [review]:

Weren't there keyboard focus issues when we tried this before?
Comment 16 Jasper St. Pierre (not reading bugmail) 2013-02-18 06:19:13 UTC
Review of attachment 236531 [details] [review]:

It looks like from the motion mockups that they don't want a cross-fade but a fade out, then fade in sort of thing.

::: js/gdm/util.js
@@ +78,3 @@
+    // and position, but leave a non-reactive clone on-screen,
+    // so from the user's point of view it smoothly fades away
+    // and reveals its sibling.

ShellStack would be a more optimal way of doing this sort of thing.
Comment 17 Ray Strode [halfline] 2013-02-19 02:49:00 UTC
(In reply to comment #11)
> I wonder if you should just fade in a MetaBackgroundActor on top. Seems a
> little iffy that this is all we're ever going to need.
We don't show a MetaBackgroundActor at the login screen, we show a noise texture. We could fade it over, though.

(In reply to comment #15)
> Review of attachment 236530 [details] [review]:
> 
> Weren't there keyboard focus issues when we tried this before?
I have some vague notion of a problem that Florian fixed.  At any rate, there aren't any focus issues now that i can see.

(In reply to comment #16)
> Review of attachment 236531 [details] [review]:
> 
> It looks like from the motion mockups that they don't want a cross-fade but a
> fade out, then fade in sort of thing.
Which ones?  This one:

http://jimmac.fedorapeople.org/gnome3/login-gray-fadein.webm

and this slightly older one:

http://jimmac.fedorapeople.org/gnome3/login.webm

both do cross fades.
 
> ::: js/gdm/util.js
> @@ +78,3 @@
> +    // and position, but leave a non-reactive clone on-screen,
> +    // so from the user's point of view it smoothly fades away
> +    // and reveals its sibling.
> 
> ShellStack would be a more optimal way of doing this sort of thing.
Can you give me some more details on what you have in mind?
Comment 18 Ray Strode [halfline] 2013-02-19 03:36:08 UTC
Created attachment 236708 [details] [review]
loginDialog: fade out before starting session

Right now we very abruptly kill the login screen
and start the users session without any transition
out.

This commit introduces a fade out of the dialog and
panels.
Comment 19 Ray Strode [halfline] 2013-02-19 03:36:13 UTC
Created attachment 236709 [details] [review]
unlockDialog: move user widget into separate file

The user widget is the username and avatar shown on
the unlock dialog.

The login dialog has something very similar.

This commit separates the user widget out to its own
file, so we can use it from the login dialog in a
later commit.
Comment 20 Ray Strode [halfline] 2013-02-19 03:36:19 UTC
Created attachment 236710 [details] [review]
loginDialog: use user widget when doing verification

Right now, when a user item is clicked we remove all other users from
the list and position the item in the appropriate place on screen.

Ultimately, we're going to want to crossfade from the fully populated
list to the user prompt.  Since we're going to need to show the user
avatar in two different positions we can't simply move it.

This commit leaves the user item for the user list, and instead shows
a UserWidget actor during user verification, in the same way the
unlock dialog shows a UserWidget actor during reauthentication.
Comment 21 Ray Strode [halfline] 2013-02-19 03:36:23 UTC
Created attachment 236711 [details] [review]
loginDialog: move prompt hiding code to hidePrompt

The sessionList and the prompt hint are all really
part of the prompt, so we should have the code that
hides those things in hidePrompt instead of in
showUserList.

This commit does that.
Comment 22 Ray Strode [halfline] 2013-02-19 03:36:27 UTC
Created attachment 236712 [details] [review]
loginDialog: put "Not Listed?" button and user list in separate container

The user list and the "Not Listed?" button get shown and hidden at the
same time, so we can simplify the code by putting them in a new
subcontainer.

This commit creates a userSelectionBox container that both actors get
put in, and changes all the code that shows and hides these actors to
show and hide userSelectionBox instead.
Comment 23 Ray Strode [halfline] 2013-02-19 03:36:31 UTC
Created attachment 236713 [details] [review]
loginDialog: add cross fade animation between states

This commit adds a crossfade between the user selection state
and the user verification state.
Comment 24 Jasper St. Pierre (not reading bugmail) 2013-02-19 03:48:41 UTC
(In reply to comment #17)
> Can you give me some more details on what you have in mind?

Well, the page crossfades were removed, but you have a ShellStack with multiple pages (actually it could just be a ClutterBinLayout nowadays) and you tweak the opacity of each one.
Comment 25 Ray Strode [halfline] 2013-02-19 13:24:53 UTC
Oh, i see what you're saying now.
Comment 26 Ray Strode [halfline] 2013-02-19 13:29:43 UTC
The problem with doing that is the buttons will have the wrong placement during the cross fade.
Comment 27 Ray Strode [halfline] 2013-02-19 13:31:50 UTC
does the line it probably makes sense to stop using modal dialog for this, but that's a cleanup for another time.
Comment 28 Jasper St. Pierre (not reading bugmail) 2013-02-19 19:06:09 UTC
(In reply to comment #26)
> The problem with doing that is the buttons will have the wrong placement during
> the cross fade.

That doesn't make any sense to me. Why?
Comment 29 Jasper St. Pierre (not reading bugmail) 2013-02-19 22:16:11 UTC
Review of attachment 236708 [details] [review]:

::: js/gdm/loginDialog.js
@@ +924,3 @@
+
+                               for (let i = 0; i < children.length; i++) {
+                                   if (children[i] != Main.layoutManager.screenShieldGroup)

Not the biggest fan of this here. We should be able to do better than this.
Comment 30 Jasper St. Pierre (not reading bugmail) 2013-02-19 22:17:22 UTC
Review of attachment 236709 [details] [review]:

::: js/ui/unlockDialog.js
@@ -66,3 @@
-                                        vertical: false });
-
-        this._avatar = new UserMenu.UserAvatarWidget(user);

Perhaps you should move UserAvatarWidget over as well?

::: js/ui/userWidget.js
@@ +1,1 @@
+

Remove whitespace at the top.
Comment 31 Jasper St. Pierre (not reading bugmail) 2013-02-19 22:18:00 UTC
Review of attachment 236710 [details] [review]:

This is really nice.
Comment 32 Jasper St. Pierre (not reading bugmail) 2013-02-19 22:18:58 UTC
Review of attachment 236712 [details] [review]:

I really like this.
Comment 33 Jasper St. Pierre (not reading bugmail) 2013-02-19 22:19:43 UTC
Review of attachment 236713 [details] [review]:

This is OK on the condition that we remove ModalDialog and move to a ClutterBinLayout sometime before release.
Comment 34 Ray Strode [halfline] 2013-02-19 23:40:18 UTC
pushing now.  if we need to do some follow up work we can

Attachment 236524 [details] pushed as f8446f1 - loginDialog: get rid of title label
Attachment 236525 [details] pushed as adf95fb - loginDialog: drop animations
Attachment 236708 [details] pushed as 244121d - loginDialog: fade out before starting session
Attachment 236709 [details] pushed as a3d3d81 - unlockDialog: move user widget into separate file
Attachment 236710 [details] pushed as d124ca3 - loginDialog: use user widget when doing verification
Attachment 236711 [details] pushed as 963e808 - loginDialog: move prompt hiding code to hidePrompt
Attachment 236712 [details] pushed as 96001d8 - loginDialog: put "Not Listed?" button and user list in separate container
Attachment 236713 [details] pushed as 5fa9581 - loginDialog: add cross fade animation between states
Comment 35 Ray Strode [halfline] 2013-02-20 00:45:51 UTC
(reopening since there's still more we can do here)
Comment 36 Ray Strode [halfline] 2013-06-25 14:33:31 UTC
*** Bug 702961 has been marked as a duplicate of this bug. ***
Comment 37 Bastien Nocera 2014-11-07 11:44:23 UTC
(In reply to comment #35)
> (reopening since there's still more we can do here)

Do you have a list of what else should be done?
Comment 38 Ray Strode [halfline] 2015-10-20 20:01:06 UTC
nope.