[gdm] greeter: disable the login button in MODE_AUTHENTICATION if no query is pending



commit 66a8a9ed1bb96fdeb8288bb9537b7e1a9c1695c8
Author: Michael Braun <michael-dev fami-braun de>
Date:   Tue Mar 8 16:52:56 2011 -0500

    greeter: disable the login button in MODE_AUTHENTICATION if no query is pending
    
    If the user does not need a password to login with gdm, then hitting the
    "log in" button causes gdm to crash. This seems to be due to an
    AnswerQuery DBUS message being generated even if the password input
    field is not visible and an password has not been requested. The user
    has a real opportunity to hit this bug at least if pam_mkhomedir is in
    use and needs some time to finish due to the size of the skeleton.
    
    This commit desensitizes the Login button when it's unavailable.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=643176

 gui/simple-greeter/gdm-greeter-login-window.c |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)
---
diff --git a/gui/simple-greeter/gdm-greeter-login-window.c b/gui/simple-greeter/gdm-greeter-login-window.c
index 10127ea..abd6707 100644
--- a/gui/simple-greeter/gdm-greeter-login-window.c
+++ b/gui/simple-greeter/gdm-greeter-login-window.c
@@ -509,14 +509,17 @@ switch_mode (GdmGreeterLoginWindow *login_window,
         switch (number) {
         case MODE_SELECTION:
                 set_log_in_button_mode (login_window, LOGIN_BUTTON_HIDDEN);
+                set_sensitive (login_window, TRUE);
                 gtk_widget_hide (login_window->priv->session_option_widget);
                 break;
         case MODE_TIMED_LOGIN:
                 set_log_in_button_mode (login_window, LOGIN_BUTTON_TIMED_LOGIN);
+                set_sensitive (login_window, TRUE);
                 gtk_widget_show (login_window->priv->session_option_widget);
                 break;
         case MODE_AUTHENTICATION:
                 set_log_in_button_mode (login_window, LOGIN_BUTTON_ANSWER_QUERY);
+                set_sensitive (login_window, FALSE);
                 gtk_widget_show (login_window->priv->session_option_widget);
                 break;
         default:
@@ -682,7 +685,6 @@ reset_dialog (GdmGreeterLoginWindow *login_window,
                 switch_mode (login_window, dialog_mode);
         }
 
-        set_sensitive (login_window, TRUE);
         set_ready (login_window);
         set_focus (GDM_GREETER_LOGIN_WINDOW (login_window));
         update_banner_message (login_window);



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]