08532dd102
Copy from home:vuntz:branches:GNOME:Factory/gdm via accept of submit request 41960 revision 3. Request was accepted with message: Forwarding to openSUSE:Factory OBS-URL: https://build.opensuse.org/request/show/41960 OBS-URL: https://build.opensuse.org/package/show/GNOME:Factory/gdm?expand=0&rev=132
78 lines
3.9 KiB
Diff
78 lines
3.9 KiB
Diff
Index: gdm-2.30.2/gui/simple-greeter/gdm-greeter-login-window.c
|
|
===================================================================
|
|
--- gdm-2.30.2.orig/gui/simple-greeter/gdm-greeter-login-window.c
|
|
+++ gdm-2.30.2/gui/simple-greeter/gdm-greeter-login-window.c
|
|
@@ -406,6 +406,13 @@ set_log_in_button_mode (GdmGreeterLoginW
|
|
}
|
|
}
|
|
|
|
+static gboolean
|
|
+user_chooser_has_no_user (GdmGreeterLoginWindow *login_window)
|
|
+{
|
|
+ return (login_window->priv->user_chooser_loaded &&
|
|
+ gdm_chooser_widget_get_number_of_items (GDM_CHOOSER_WIDGET (login_window->priv->user_chooser)) == 0);
|
|
+}
|
|
+
|
|
static void
|
|
adjust_other_login_visibility(GdmGreeterLoginWindow *login_window)
|
|
{
|
|
@@ -565,7 +572,7 @@ reset_dialog (GdmGreeterLoginWindow *log
|
|
label = GTK_WIDGET (gtk_builder_get_object (GDM_GREETER_LOGIN_WINDOW (login_window)->priv->builder, "auth-prompt-label"));
|
|
gtk_label_set_text (GTK_LABEL (label), "");
|
|
|
|
- if (login_window->priv->user_list_disabled) {
|
|
+ if (login_window->priv->user_list_disabled || user_chooser_has_no_user (login_window)) {
|
|
switch_mode (login_window, MODE_AUTHENTICATION);
|
|
} else {
|
|
switch_mode (login_window, MODE_SELECTION);
|
|
@@ -603,8 +610,8 @@ gdm_greeter_login_window_ready (GdmGreet
|
|
set_focus (GDM_GREETER_LOGIN_WINDOW (login_window));
|
|
|
|
/* If the user list is disabled, then start the PAM conversation */
|
|
- if (login_window->priv->user_list_disabled) {
|
|
- g_debug ("Starting PAM conversation since user list disabled");
|
|
+ if (login_window->priv->user_list_disabled || user_chooser_has_no_user (login_window)) {
|
|
+ g_debug ("Starting PAM conversation since user list disabled or no local users");
|
|
g_signal_emit (G_OBJECT (login_window), signals[USER_SELECTED],
|
|
0, GDM_USER_CHOOSER_USER_OTHER);
|
|
g_signal_emit (login_window, signals[BEGIN_VERIFICATION], 0);
|
|
@@ -901,7 +908,16 @@ on_users_loaded (GdmUserChooserWidget *
|
|
update_banner_message (login_window);
|
|
adjust_other_login_visibility (login_window);
|
|
|
|
- gdm_chooser_widget_activate_if_one_item (GDM_CHOOSER_WIDGET (login_window->priv->user_chooser));
|
|
+ if (user_chooser_has_no_user (login_window)) {
|
|
+ /* There's no face browser to show */
|
|
+ login_window->priv->show_cancel_button = FALSE;
|
|
+ switch_mode (login_window, MODE_AUTHENTICATION);
|
|
+
|
|
+ g_debug ("Starting PAM conversation since no local users");
|
|
+ g_signal_emit (G_OBJECT (login_window), signals[USER_SELECTED],
|
|
+ 0, GDM_USER_CHOOSER_USER_OTHER);
|
|
+ g_signal_emit (login_window, signals[BEGIN_VERIFICATION], 0);
|
|
+ }
|
|
}
|
|
|
|
static void
|
|
@@ -1255,7 +1271,7 @@ update_banner_message (GdmGreeterLoginWi
|
|
} else {
|
|
char *message = NULL;
|
|
error = NULL;
|
|
- if (login_window->priv->user_chooser_loaded && gdm_chooser_widget_get_number_of_items (GDM_CHOOSER_WIDGET (login_window->priv->user_chooser)) == 0) {
|
|
+ if (user_chooser_has_no_user (login_window)) {
|
|
message = gconf_client_get_string (login_window->priv->client, KEY_BANNER_MESSAGE_TEXT_NOCHOOSER, &error);
|
|
if (error != NULL) {
|
|
g_debug("GdmGreeterLoginWindow: unable to get nochooser banner text: %s", error->message);
|
|
Index: gdm-2.30.2/gui/simple-greeter/gdm-chooser-widget.c
|
|
===================================================================
|
|
--- gdm-2.30.2.orig/gui/simple-greeter/gdm-chooser-widget.c
|
|
+++ gdm-2.30.2/gui/simple-greeter/gdm-chooser-widget.c
|
|
@@ -1915,6 +1915,7 @@ gdm_chooser_widget_init (GdmChooserWidge
|
|
|
|
add_separator (widget);
|
|
queue_column_visibility_update (widget);
|
|
+ update_chooser_visibility (widget);
|
|
}
|
|
|
|
static void
|