Index: =================================================================== RCS file: /cvs/gnome/gdm2/gui/greeter/greeter.c,v --- 1.95.2.6 +++ @@ -, +, @@ * gui/gdmlogin.c, gui/greeter/greeter.c, gui/greeter/greeter_item_ulist.c, gui/greeter/greeter_system.c: Correct serious issue where user can enter the configure screen with their user password instead of the root password. Fixes bug #343476. @@ -384,7 +384,6 @@ buf[len-1] = '\0'; greeter_item_pam_set_user (buf); - greeter_item_ulist_enable (); printf ("%c\n", STX); fflush (stdout); break; @@ -541,6 +540,8 @@ printf ("%c\n", STX); fflush (stdout); greeter_ignore_buttons (FALSE); + greeter_item_ulist_enable (); + break; case GDM_QUIT: @@ -1504,6 +1505,9 @@ gtk_window_move (GTK_WINDOW (window), gdm_wm_screen.x, gdm_wm_screen.y); gtk_widget_show_now (window); + greeter_item_ulist_unset_selected_user (); + greeter_item_ulist_enable (); + /* can it ever happen that it'd be NULL here ??? */ if G_UNLIKELY (window->window != NULL) { @@ -65,6 +65,10 @@ void greeter_item_ulist_unset_selected_user (void) { + GtkTreeSelection *selection; + selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (user_list)); + gtk_tree_selection_unselect_all (selection); + if (selected_user != NULL) g_free (selected_user); selected_user = NULL; @@ -350,8 +354,6 @@ force_no_tree_separators (user_list); greeter_generate_userlist (user_list); - if ( ! DOING_GDM_DEVELOPMENT) - greeter_item_ulist_disable (); /* Reset size of the widget canvas item so it * is the same size as the userlist. This @@ -119,6 +119,11 @@ static void greeter_config_handler (void) { + greeter_item_ulist_disable (); + + /* Make sure to unselect the user */ + greeter_item_ulist_unset_selected_user (); + /* we should be now fine for focusing new windows */ gdm_wm_focus_new_windows (TRUE); @@ -798,6 +798,8 @@ static void gdm_run_gdmconfig (GtkWidget *w, gpointer data) { + gtk_widget_set_sensitive (browser, FALSE); + /* we should be now fine for focusing new windows */ gdm_wm_focus_new_windows (TRUE);