summaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorMichael Braun <michael-dev@fami-braun.de>2011-03-08 16:52:56 -0500
committerRay Strode <rstrode@redhat.com>2011-03-08 17:01:02 -0500
commit66a8a9ed1bb96fdeb8288bb9537b7e1a9c1695c8 (patch)
treea6d4c85ae043b2fee80f7b258403b76354e3bafd /gui
parent155ffa120776479c83df8b43228273ffc748fec1 (diff)
downloadgdm-66a8a9ed1bb96fdeb8288bb9537b7e1a9c1695c8.tar.gz
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
Diffstat (limited to 'gui')
-rw-r--r--gui/simple-greeter/gdm-greeter-login-window.c4
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 10127eac..abd67076 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);