--- gdm-2.21.9/gui/simple-greeter/gdm-greeter-login-window.c (revision 5896) +++ gdm-2.21.9/gui/simple-greeter/gdm-greeter-login-window.c (working copy) @@ -1325,10 +1325,21 @@ static gboolean gdm_greeter_login_window_key_press_event (GtkWidget *widget, GdkEventKey *event) { + GdmGreeterLoginWindow *login_window; + gboolean capslock_on; + + login_window = GDM_GREETER_LOGIN_WINDOW (widget); + if (event->keyval == GDK_Escape) { reset_dialog (GDM_GREETER_LOGIN_WINDOW (widget)); } + capslock_on = is_capslock_on (); + + if (capslock_on != login_window->priv->caps_lock_on) { + capslock_update (login_window, capslock_on); + } + return GTK_WIDGET_CLASS (gdm_greeter_login_window_parent_class)->key_press_event (widget, event); } @@ -1581,22 +1592,6 @@ gdm_greeter_login_window_class_init (Gdm g_type_class_add_private (klass, sizeof (GdmGreeterLoginWindowPrivate)); } -static gint -window_key_press (GtkWidget *widget, - GdkEventKey *event, - GdmGreeterLoginWindow *login_window) -{ - gboolean capslock_on; - - capslock_on = is_capslock_on (); - - if (capslock_on != login_window->priv->caps_lock_on) { - capslock_update (login_window, capslock_on); - } - - return TRUE; -} - static void on_gconf_key_changed (GConfClient *client, guint cnxn_id, @@ -1659,11 +1654,6 @@ gdm_greeter_login_window_init (GdmGreete login_window, NULL, NULL); - - g_signal_connect (login_window, "key_press_event", - G_CALLBACK (window_key_press), - login_window); - } static void