diff --git a/src/Cards/ManualCard.vala b/src/Cards/ManualCard.vala index 97340d98..d1ae0794 100644 --- a/src/Cards/ManualCard.vala +++ b/src/Cards/ManualCard.vala @@ -47,8 +47,11 @@ public class Greeter.ManualCard : Greeter.BaseCard { form_grid.attach (label, 0, 1, 2); form_grid.attach (username_entry, 0, 2); form_grid.attach (password_entry, 0, 3); - form_grid.attach (session_button, 1, 2, 1, 2); - form_grid.attach (caps_lock_revealer, 0, 4, 2); + if (!session_button.single_session) { + form_grid.attach (session_button, 1, 2, 1, 2); + } + form_grid.attach (caps_lock_revealer, + 0, 4, session_button.single_session ? 1 : 2); main_box = new Gtk.Box (VERTICAL, 0) { margin_top = 12, diff --git a/src/Cards/UserCard.vala b/src/Cards/UserCard.vala index 4f9a4be3..aa604ec9 100644 --- a/src/Cards/UserCard.vala +++ b/src/Cards/UserCard.vala @@ -60,8 +60,11 @@ public class Greeter.UserCard : Greeter.BaseCard { }; password_grid.attach (password_entry, 0, 0); password_grid.attach (fingerprint_image, 1, 0); - password_grid.attach (password_session_button, 2, 0); - password_grid.attach (new Greeter.CapsLockRevealer (), 0, 1, 3); + if (!password_session_button.single_session) { + password_grid.attach (password_session_button, 2, 0); + } + password_grid.attach (new Greeter.CapsLockRevealer (), + 0, 1, password_session_button.single_session ? 2 : 3); var login_button = new Gtk.Button.with_label (_("Log In")); login_button.add_css_class (Granite.CssClass.SUGGESTED); @@ -73,7 +76,9 @@ public class Greeter.UserCard : Greeter.BaseCard { var login_box = new Gtk.Box (HORIZONTAL, 6); login_box.append (login_button); - login_box.append (login_button_session_button); + if (!login_button_session_button.single_session) { + login_box.append (login_button_session_button); + } var disabled_box = new Gtk.Box (HORIZONTAL, 6) { halign = Gtk.Align.CENTER, diff --git a/src/Widgets/SessionButton.vala b/src/Widgets/SessionButton.vala index 69447e3d..3755ea26 100644 --- a/src/Widgets/SessionButton.vala +++ b/src/Widgets/SessionButton.vala @@ -6,6 +6,8 @@ */ public class Greeter.SessionButton : Granite.Bin { + public bool single_session { get; private set; } + construct { var menu = new GLib.Menu (); unowned var application = (Gtk.Application) GLib.Application.get_default (); @@ -25,5 +27,7 @@ public class Greeter.SessionButton : Granite.Bin { }; child = menu_button; + + single_session = menu.get_n_items () == 1; } }