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 702818 - Move the session menu into a bubble
Move the session menu into a bubble
Status: RESOLVED FIXED
Product: gnome-shell
Classification: Core
Component: login-screen
3.8.x
Other Linux
: Normal normal
: ---
Assigned To: Ray Strode [halfline]
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2013-06-21 14:32 UTC by Allan Day
Modified: 2013-06-26 19:20 UTC
See Also:
GNOME target: ---
GNOME version: 3.7/3.8


Attachments
mockup (275.26 KB, image/png)
2013-06-21 14:32 UTC, Allan Day
  Details
loginDialog: Move the session list to a PopupMenu (10.72 KB, patch)
2013-06-24 04:14 UTC, Jasper St. Pierre (not reading bugmail)
needs-work Details | Review
loginDialog: Move the session list to a PopupMenu (22.16 KB, patch)
2013-06-25 13:30 UTC, Ray Strode [halfline]
none Details | Review
ui: move AnimatedIcon out of panel.js (14.24 KB, patch)
2013-06-25 17:44 UTC, Ray Strode [halfline]
committed Details | Review
loginDialog: clean up unused imports (1.90 KB, patch)
2013-06-25 17:44 UTC, Ray Strode [halfline]
reviewed Details | Review
loginDialog: drop use of modal dialog (31.61 KB, patch)
2013-06-25 17:44 UTC, Ray Strode [halfline]
reviewed Details | Review
loginDialog: Move the session list to a PopupMenu (24.29 KB, patch)
2013-06-25 17:45 UTC, Ray Strode [halfline]
reviewed Details | Review
loginDialog: make spinner and session menu button share position (6.72 KB, patch)
2013-06-25 17:45 UTC, Ray Strode [halfline]
needs-work Details | Review
loginDialog: clean up import lines (2.94 KB, patch)
2013-06-25 19:37 UTC, Ray Strode [halfline]
committed Details | Review
loginDialog: drop use of modal dialog (32.18 KB, patch)
2013-06-25 20:14 UTC, Ray Strode [halfline]
committed Details | Review
loginDialog: Move the session list to a PopupMenu (23.13 KB, patch)
2013-06-25 20:14 UTC, Ray Strode [halfline]
needs-work Details | Review
loginDialog: make spinner and session menu button share position (7.40 KB, patch)
2013-06-25 20:14 UTC, Ray Strode [halfline]
needs-work Details | Review
loginDialog: Move the session list to a PopupMenu (24.59 KB, patch)
2013-06-26 14:08 UTC, Ray Strode [halfline]
committed Details | Review
loginDialog: make spinner and session menu button share position (11.84 KB, patch)
2013-06-26 14:08 UTC, Ray Strode [halfline]
none Details | Review
loginDialog: make spinner and session menu button share position (19.11 KB, patch)
2013-06-26 18:43 UTC, Ray Strode [halfline]
accepted-commit_now Details | Review
loginDialog: make spinner and session menu button share position (19.13 KB, patch)
2013-06-26 18:48 UTC, Ray Strode [halfline]
committed Details | Review

Description Allan Day 2013-06-21 14:32:04 UTC
Created attachment 247445 [details]
mockup

There are some issues with the existing session menu. First, it looks kinda bad. It seems like it's hanging around there, but it doesn't really know what to do with itself.

Second, when it expands down it requires that the buttons below move down with it. This kind of movement is awkward and looks a bit weird.

Third, it's current position makes the "dialog" tall and unwieldy when you add things like messages for finger print readers or authentication errors.

My proposal is to move the menu into a popup bubble, which can be accessed from a gear button menu that is next to the Sign In button. A mockup is attached.
Comment 1 Ray Strode [halfline] 2013-06-21 14:50:41 UTC
sounds good to me, what about the spinner that shows up there now?  should we crossfade between them?
Comment 2 Allan Day 2013-06-21 15:05:06 UTC
(In reply to comment #1)
> ... what about the spinner that shows up there now?  should we
> crossfade between them?

That would be good. The main thing here is to ensure that the spinner is in the same position as the gear icon.
Comment 3 Jasper St. Pierre (not reading bugmail) 2013-06-24 04:14:45 UTC
Created attachment 247593 [details] [review]
loginDialog: Move the session list to a PopupMenu

--

First pass, without the spinner integration.
Comment 4 Ray Strode [halfline] 2013-06-25 12:56:56 UTC
Review of attachment 247593 [details] [review]:

Hi thanks for looking into this. I was planning to as well, but since you've picked it up I'll do the review half.

::: data/theme/gnome-shell.css
@@ +2350,3 @@
 
+.login-dialog-session-list-button StIcon {
+    icon-size: 16px;

This should probably say 1.5em or something instead, so it scales better on hidpi screens.

@@ +2355,2 @@
 .login-dialog-session-list-button {
+    color: #e6e6e6;

So one thing is, the prelight isn't very contrasty. I guess because it's such a small icon. it might make sense to use a darker starting color, not sure.

::: js/gdm/loginDialog.js
@@ +348,1 @@
     Name: 'SessionList',

maybe we should rename it to SessionMenu?

@@ +366,3 @@
+        let subtitle = new PopupMenu.PopupMenuItem(_("Session"), { style_class: 'popup-subtitle-menu-item',
+                                                                   reactive: false });
+        this._menu.addMenuItem(subtitle);

I'd probably call this a "header" instead of a subtitle, but doesn't really matter.

@@ +383,3 @@
         this._button.reactive = sensitive;
         this._button.can_focus = sensitive;
+        this._menu.close(BoxPointer.PopupAnimation.NONE);

I sort of worry if we close the menu here we may end up in some situation where the menu gets closed out from under the user.  But I'd say lets cross that bridge if we ever come to it.

@@ +422,2 @@
+            item.connect('activate', Lang.bind(this, function() {
+                this.setSessionItem(id);

This should be setActiveSession not setSessionItem right?  Selecting a session doesn't seem to work at the moment.
Comment 5 Ray Strode [halfline] 2013-06-25 13:30:33 UTC
Created attachment 247731 [details] [review]
loginDialog: Move the session list to a PopupMenu

There are some issues with the existing session menu. First, it looks
kinda bad. It seems like it's hanging around there, but it doesn't really know
what to do with itself.

Second, when it expands down it requires that the buttons below move
down with it. This kind of movement is awkward and looks a bit weird.

Third, it's current position makes the "dialog" tall and unwieldy when
you add things like messages for finger print readers or authentication errors.

This commit moves the session list to a menu behind a button to address
the above problems.

Small updates to patch by Ray Strode.
Comment 6 Ray Strode [halfline] 2013-06-25 13:52:46 UTC
Doing the crossfade is sort of hard since the spinner is done at the modal dialog level.  I'll post a patch to make the login dialog not depend on modal dialog anymore.
Comment 7 Ray Strode [halfline] 2013-06-25 17:44:31 UTC
Created attachment 247759 [details] [review]
ui: move AnimatedIcon out of panel.js

The class is generally useful, so it only makes sense in panel.js
for historical reasons. Because other parts of the code are
using it, though, problems are cropping up that require a
workaround like:

placeSpinner: function(...) {
    /* This is here because of recursive imports */
    const Panel = imports.ui.panel;
    Panel.AnimatedIcon(spinnerIcon, WORK_SPINNER_ICON_SIZE);
    ...
}

This commit moves AnimatedIcon to its own file so we can drop that
workaround.
Comment 8 Ray Strode [halfline] 2013-06-25 17:44:37 UTC
Created attachment 247760 [details] [review]
loginDialog: clean up unused imports
Comment 9 Ray Strode [halfline] 2013-06-25 17:44:51 UTC
Created attachment 247761 [details] [review]
loginDialog: drop use of modal dialog

The login screen is no longer even remotely dialog-like, so
using ModalDialog is pretty weird. It also makes it difficult
to put the session list in the same place as the spinner.

This commit moves loginDialog away from using modal dialog.
Comment 10 Ray Strode [halfline] 2013-06-25 17:45:02 UTC
Created attachment 247762 [details] [review]
loginDialog: Move the session list to a PopupMenu

There are some issues with the existing session menu. First, it looks
kinda bad. It seems like it's hanging around there, but it doesn't really know
what to do with itself.

Second, when it expands down it requires that the buttons below move
down with it. This kind of movement is awkward and looks a bit weird.

Third, it's current position makes the "dialog" tall and unwieldy when
you add things like messages for finger print readers or authentication errors.

This commit moves the session list to a menu behind a button to address
the above problems.

Small updates to patch by Ray Strode.
Comment 11 Ray Strode [halfline] 2013-06-25 17:45:09 UTC
Created attachment 247763 [details] [review]
loginDialog: make spinner and session menu button share position

They never need to be shown at the same time, and the design has
the UI fade between them.

This commit implements that.
Comment 12 Jasper St. Pierre (not reading bugmail) 2013-06-25 18:02:09 UTC
Review of attachment 247759 [details] [review]:

OK.
Comment 13 Jasper St. Pierre (not reading bugmail) 2013-06-25 18:03:06 UTC
Review of attachment 247760 [details] [review]:

::: js/gdm/loginDialog.js
@@ +21,3 @@
 const AccountsService = imports.gi.AccountsService;
 const Clutter = imports.gi.Clutter;
 const CtrlAltTab = imports.ui.ctrlAltTab;

This should be in the lower section.

@@ +28,3 @@
 const Meta = imports.gi.Meta;
 const Lang = imports.lang;
 const Pango = imports.gi.Pango;

Pango is also unused.

@@ +29,3 @@
 const Lang = imports.lang;
 const Pango = imports.gi.Pango;
 const Realmd = imports.gdm.realmd;

Lower section.

@@ +33,3 @@
 const Shell = imports.gi.Shell;
 const St = imports.gi.St;
 const Gdm = imports.gi.Gdm;

Should be alphabetically sorted.
Comment 14 Jasper St. Pierre (not reading bugmail) 2013-06-25 18:09:43 UTC
Review of attachment 247761 [details] [review]:

::: js/gdm/loginDialog.js
@@ +526,3 @@
         this._userSelectionBox = new St.BoxLayout({ style_class: 'login-dialog-user-selection-box',
                                                     vertical: true });
+        this._userSelectionBox.add_constraint(new Clutter.AlignConstraint({ source: this.actor,

What is this needed for? Can't you just use x_align: Clutter.ActorAlign.MIDDLE ?

@@ +544,3 @@
         this._promptBox = new St.BoxLayout({ style_class: 'login-dialog-prompt-layout',
                                              vertical: true });
+        this._promptBox.add_constraint(new Clutter.AlignConstraint({ source: this.actor,

same

@@ -615,3 @@
         this._logoBin = new St.Bin({ style_class: 'login-dialog-logo-bin', y_expand: true });
         this._logoBin.set_y_align(Clutter.ActorAlign.END);
-        this.backgroundStack.add_actor(this._logoBin);

This means we can remove backgroundStack from ModalDialog, right?

@@ +629,3 @@
+                                                                   align_axis: Clutter.AlignAxis.Y_AXIS,
+                                                                   factor: 1.0 }));
+        this.actor.add_child(this._logoBin);

I'd rather have this be part of the screen shield than the login dialog.

I don't like the idea of having the login dialog stretch the length of the screen.

@@ +820,3 @@
+                                           this.cancel();
+                                       }));
+            global.stage.connect('captured-event',

ugh. Why can't you use a key-press handler on the group, and have the key event bubble from the entry naturally?

If we need to go with a captured event (please don't, guh), then we need to disconnect this signal to prevent it from leaking after you hit Cancel.
Comment 15 Jasper St. Pierre (not reading bugmail) 2013-06-25 18:18:10 UTC
Review of attachment 247762 [details] [review]:

::: js/gdm/loginDialog.js
@@ +722,3 @@
         this._buttonBox.visible = true;
+        if (this._sessionList.actor.get_parent())
+            this._buttonBox.remove_child(this._sessionList.actor);

ugh

@@ +761,3 @@
+        this._buttonBox.add(this._sessionList.actor,
+                            { expand: false,
+                              x_align: St.Align.END });

To have these two crossfaded, I'd add both the spinner and session menu button to a bin-like actor that you put in place. That would be a lot easier to handle, I think.
Comment 16 Jasper St. Pierre (not reading bugmail) 2013-06-25 18:21:21 UTC
Review of attachment 247763 [details] [review]:

::: js/gdm/loginDialog.js
@@ +623,3 @@
     },
 
     _setWorking: function(working) {

showModifier(SPINNER);
showModifier(SESSION_LIST);
showModifier(NONE);

?

I don't really like "if we're working, hide the session menu, and then when we become unworking, don't show it again"

@@ +770,3 @@
 
+        this._workSpinner.actor.add_constraint(new Clutter.BindConstraint({ source: this._sessionList.actor,
+                                                                            coordinate: Clutter.BindCoordinate.ALL }));

Yeah, I prefer the bin.
Comment 17 Ray Strode [halfline] 2013-06-25 19:12:19 UTC
(In reply to comment #14)
> Review of attachment 247761 [details] [review]:
> 
> ::: js/gdm/loginDialog.js
> @@ +526,3 @@
>          this._userSelectionBox = new St.BoxLayout({ style_class:
> 'login-dialog-user-selection-box',
>                                                      vertical: true });
> +        this._userSelectionBox.add_constraint(new Clutter.AlignConstraint({
> source: this.actor,
> 
> What is this needed for? Can't you just use x_align: Clutter.ActorAlign.MIDDLE

We talked about this a bit on irc:
<halfline> out of curiosity, why don't you like constraints ?
<halfline> they have the appeal in my mind of describing very concisely what the intention of the interaction between two actors are
<Jasper> halfline, ideally, they'd work fine
<Jasper> halfline, in practice, there's *a lot* of complications that mean they're suboptimal.
<Jasper> We've had relayout loops and full stage redraws when using constraints before.
<halfline> i see
<halfline> thing is, there's this other bug where if a pam prompt message shows up that's longer than the buttons, then the buttons spread out
<halfline> since there's no visible box around them that looks wrong
<halfline> so ultimately i want to decouple the actors from each other
<halfline> i don't want them really acting like they're in the same box layout
<halfline> and instead just describe how they sit relative to each other
<drago01> Jasper: that depends on the actor hierachy thoough
<drago01> Jasper: contraints take away a lot of complexity in cases where they work
<Jasper> halfline, hm, OK.

> This means we can remove backgroundStack from ModalDialog, right?
Indeed.  I'd also like to consolidate the login dialog and unlock dialog code, then we can get rid of placeSpinner from ModalDialog as well (we can do that in a different bug though)
 
> I'd rather have this be part of the screen shield than the login dialog.
> 
> I don't like the idea of having the login dialog stretch the length of the
> screen.
I assume given our discussion above, you're okay with treating the login dialog as full screen conceptually now.

I'd rather keep it in login dialog, because:

1) it's already there, and that's orthogonal to this bug
2) it's only ever shown in the login screen, so having in the login screen specific code sort of makes sense

> 
> @@ +820,3 @@
> +                                           this.cancel();
> +                                       }));
> +            global.stage.connect('captured-event',
> 
> ugh. Why can't you use a key-press handler on the group, and have the key event
> bubble from the entry naturally?
Yea, that's clearly better. will do.
Comment 18 Ray Strode [halfline] 2013-06-25 19:21:44 UTC
Comment on attachment 247759 [details] [review]
ui: move AnimatedIcon out of panel.js

Attachment 247759 [details] pushed as aa6b633 - ui: move AnimatedIcon out of panel.js
Comment 19 Ray Strode [halfline] 2013-06-25 19:37:04 UTC
Created attachment 247768 [details] [review]
loginDialog: clean up import lines

There are a few unused imports, and some import lines
out of order.

This commit tries to clean it all up.
Comment 20 Jasper St. Pierre (not reading bugmail) 2013-06-25 19:39:06 UTC
Review of attachment 247768 [details] [review]:

OK.
Comment 21 Ray Strode [halfline] 2013-06-25 20:11:42 UTC
(In reply to comment #16)
> Review of attachment 247763 [details] [review]:
> 
> ::: js/gdm/loginDialog.js
> @@ +623,3 @@
>      },
> 
>      _setWorking: function(working) {
> 
> showModifier(SPINNER);
> showModifier(SESSION_LIST);
> showModifier(NONE);
> 
> ?
> 
> I don't really like "if we're working, hide the session menu, and then when we
> become unworking, don't show it again"
I kind of understand your point.  It's reasonable to allow the user to select a session even after stopping the spinner.  So you're proposing reworking the code to be in terms of features like "spinner", "session list" and having a way to turn them on and off.

The thing is, they aren't really comparable items.  The only thing they have in common is that they occupy the same space and different points of the operation. So I feel like the abstraction should be on the operation, not the on features themselves.

Fixing the else clause to reshow the session list makes sense to me though.

> @@ +770,3 @@
> 
> +        this._workSpinner.actor.add_constraint(new Clutter.BindConstraint({
> source: this._sessionList.actor,
> +                                                                           
> coordinate: Clutter.BindCoordinate.ALL }));
> 
> Yeah, I prefer the bin.
I assume since you're okay with constraints now following our discussion above, that this is okay now too.
Comment 22 Ray Strode [halfline] 2013-06-25 20:13:16 UTC
Comment on attachment 247768 [details] [review]
loginDialog: clean up import lines

Attachment 247768 [details] pushed as 048d5dc - loginDialog: clean up import lines
Comment 23 Ray Strode [halfline] 2013-06-25 20:14:35 UTC
Created attachment 247773 [details] [review]
loginDialog: drop use of modal dialog

The login screen is no longer even remotely dialog-like, so
using ModalDialog is pretty weird. It also makes it difficult
to put the session list in the same place as the spinner.

This commit moves loginDialog away from using modal dialog.
Comment 24 Ray Strode [halfline] 2013-06-25 20:14:40 UTC
Created attachment 247774 [details] [review]
loginDialog: Move the session list to a PopupMenu

There are some issues with the existing session menu. First, it looks
kinda bad. It seems like it's hanging around there, but it doesn't really know
what to do with itself.

Second, when it expands down it requires that the buttons below move
down with it. This kind of movement is awkward and looks a bit weird.

Third, it's current position makes the "dialog" tall and unwieldy when
you add things like messages for finger print readers or authentication errors.

This commit moves the session list to a menu behind a button to address
the above problems.

Small updates to patch by Ray Strode.
Comment 25 Ray Strode [halfline] 2013-06-25 20:14:44 UTC
Created attachment 247775 [details] [review]
loginDialog: make spinner and session menu button share position

They never need to be shown at the same time, and the design has
the UI fade between them.

This commit implements that.
Comment 26 Jasper St. Pierre (not reading bugmail) 2013-06-25 20:17:45 UTC
(In reply to comment #21)
> (In reply to comment #16)
> The thing is, they aren't really comparable items.  The only thing they have in
> common is that they occupy the same space and different points of the
> operation. So I feel like the abstraction should be on the operation, not the
> on features themselves.

I think setWorking, as an API, is bad. It says "please show the spinner", completely ignoring the fact that there's also the session list there. It's possible we should have "spinnerShowing" and "sessionListShowing" and if both are showing, we choose one to prioritize -- let's say the spinner. I don't like embedding random logic about which element to show in setWorking.
Comment 27 Jasper St. Pierre (not reading bugmail) 2013-06-25 20:18:38 UTC
Review of attachment 247773 [details] [review]:

OK.
Comment 28 Jasper St. Pierre (not reading bugmail) 2013-06-25 20:25:52 UTC
Review of attachment 247774 [details] [review]:

::: js/gdm/loginDialog.js
@@ +387,3 @@
+            item.connect('activate', Lang.bind(this, function() {
+                this.setActiveSession(id);
+                this._menu.close();

This shouldn't be needed? A PopupMenu connects to the item's 'activate' signal manually and closes it then.

@@ +732,3 @@
         this._buttonBox.visible = true;
+        if (this._sessionList.actor.get_parent())
+            this._buttonBox.remove_child(this._sessionList.actor);

As I said... ugh.
Comment 29 Jasper St. Pierre (not reading bugmail) 2013-06-25 20:26:46 UTC
Review of attachment 247774 [details] [review]:

::: js/gdm/loginDialog.js
@@ +19,3 @@
  */
 
+const Atk = imports.gi.Atk;

Also, duplicate import? I'm quite sure gjs will complain about duplicated consts. Did you not test this?
Comment 30 Jasper St. Pierre (not reading bugmail) 2013-06-25 20:28:42 UTC
Review of attachment 247775 [details] [review]:

You didn't implement the bin actor that I thought you would?

::: js/gdm/loginDialog.js
@@ +639,3 @@
         Tweener.removeTweens(this._workSpinner.actor);
         if (working) {
+            if (this._sessionList.actor.opacity > 0)

Why the check?

@@ +655,3 @@
                              });
         } else {
+            if (this._sessionList.actor.opacity == 0 &&

Why the check?

@@ +727,3 @@
                            transition: 'easeOutQuad' });
 
+        if ((this._user && !this._user.is_logged_in()) || this._verifyingUser) {

Factor this out into this._shouldShowSessionList() or something.

Also, no brackets.
Comment 31 Ray Strode [halfline] 2013-06-25 20:39:34 UTC
Comment on attachment 247773 [details] [review]
loginDialog: drop use of modal dialog

Attachment 247773 [details] pushed as ea02380 - loginDialog: drop use of modal dialog
Comment 32 Ray Strode [halfline] 2013-06-25 20:44:19 UTC
(In reply to comment #28)
> Review of attachment 247774 [details] [review]:
> 
> ::: js/gdm/loginDialog.js
> @@ +387,3 @@
> +            item.connect('activate', Lang.bind(this, function() {
> +                this.setActiveSession(id);
> +                this._menu.close();
> 
> This shouldn't be needed? A PopupMenu connects to the item's 'activate' signal
> manually and closes it then.
Nope, trying it, apparently not. If you knew that now, why did you add it in the first place? :-)

> @@ +732,3 @@
>          this._buttonBox.visible = true;
> +        if (this._sessionList.actor.get_parent())
> +            this._buttonBox.remove_child(this._sessionList.actor);
> 
> As I said... ugh.

Yea, it's not super pretty, but what's the alternative? we don't want it to get destroyed and we don't want to have to rebuild the list every time, right?
Comment 33 Jasper St. Pierre (not reading bugmail) 2013-06-25 20:55:55 UTC
(In reply to comment #32)
> Nope, trying it, apparently not. If you knew that now, why did you add it in
> the first place? :-)

Huh, given how I didn't even get the method name right, I figured it was something you added. Guess not. I'd want to debug this, though. See PopupMenu._connectItemSignals -- it adds the 'activate' handler that closes the menu.

> Yea, it's not super pretty, but what's the alternative? we don't want it to get
> destroyed and we don't want to have to rebuild the list every time, right?

I think I'd be happier with this._buttonBox.contains(this._sessionList.actor) instead of the get_parent().
Comment 34 Ray Strode [halfline] 2013-06-26 11:44:58 UTC
(In reply to comment #33)
> (In reply to comment #32)
> > Nope, trying it, apparently not. If you knew that now, why did you add it in
> > the first place? :-)
> 
> I'd want to debug this, though. See
> PopupMenu._connectItemSignals -- it adds the 'activate' handler that closes the
> menu.
I think we're miscommunicating because of double negatives.  To be clear, we're both saying that call is completely unnecessary and it works fine with out it.  Nothing needs to be debugged.
Comment 35 Ray Strode [halfline] 2013-06-26 11:46:49 UTC
(In reply to comment #33)
> I think I'd be happier with this._buttonBox.contains(this._sessionList.actor)
> instead of the get_parent().
Slightly less efficient, but not enough to matter in practice, I guess. sure.
Comment 36 Ray Strode [halfline] 2013-06-26 14:08:09 UTC
Thinking about this more, we can just use remove_all_children instead of destroy_all_children.  All other children will get destroyed when they're references get replaced.
Comment 37 Ray Strode [halfline] 2013-06-26 14:08:35 UTC
Created attachment 247830 [details] [review]
loginDialog: Move the session list to a PopupMenu

There are some issues with the existing session menu. First, it looks
kinda bad. It seems like it's hanging around there, but it doesn't really know
what to do with itself.

Second, when it expands down it requires that the buttons below move
down with it. This kind of movement is awkward and looks a bit weird.

Third, it's current position makes the "dialog" tall and unwieldy when
you add things like messages for finger print readers or authentication errors.

This commit moves the session list to a menu behind a button to address
the above problems.

Some updates to patch by Ray Strode.
Comment 38 Ray Strode [halfline] 2013-06-26 14:08:40 UTC
Created attachment 247831 [details] [review]
loginDialog: make spinner and session menu button share position

They never need to be shown at the same time, and the design has
the UI fade between them.

This commit implements that.
Comment 39 Jasper St. Pierre (not reading bugmail) 2013-06-26 17:56:05 UTC
Review of attachment 247830 [details] [review]:

Code looks good, one minor comment.

::: js/gdm/loginDialog.js
@@ +293,1 @@
 const SessionList = new Lang.Class({

I think renaming to SessionMenu or SessionMenuButton would be a good idea.
Comment 40 Ray Strode [halfline] 2013-06-26 18:42:51 UTC
Comment on attachment 247830 [details] [review]
loginDialog: Move the session list to a PopupMenu

okay pushed with that change
Attachment 247830 [details] pushed as 8d7649e - loginDialog: Move the session list to a PopupMenu
Comment 41 Ray Strode [halfline] 2013-06-26 18:43:32 UTC
Created attachment 247853 [details] [review]
loginDialog: make spinner and session menu button share position

They never need to be shown at the same time, and the design has
the UI fade between them.

This commit implements that.
Comment 42 Ray Strode [halfline] 2013-06-26 18:48:24 UTC
Created attachment 247854 [details] [review]
loginDialog: make spinner and session menu button share position

They never need to be shown at the same time, and the design has
the UI fade between them.

This commit implements that.
Comment 43 Jasper St. Pierre (not reading bugmail) 2013-06-26 18:54:48 UTC
Review of attachment 247853 [details] [review]:

Yeah, I like this better.
Comment 44 Ray Strode [halfline] 2013-06-26 19:20:40 UTC
okay pushed.

Attachment 247854 [details] pushed as f7568b6 - loginDialog: make spinner and session menu button share position