summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrian Cameron <brian.cameron@sun.com>2007-12-10 18:40:21 +0000
committerBrian Cameron <bcameron@src.gnome.org>2007-12-10 18:40:21 +0000
commit9a2a1ef40ad6bdaede7d591d497e39f65428404e (patch)
tree5d1d776c7c6e90f1e85a0d1de9826a3090617639
parente775af41bc770b994dacd1c1f42c5ee19f943831 (diff)
downloadgdm-9a2a1ef40ad6bdaede7d591d497e39f65428404e.tar.gz
Now "Esc" key acts like the "Start Again" button. Fixes enhancement
2007-12-10 Brian Cameron <brian.cameron@sun.com> * gui/gdmlogin.c, gui/greeter/greeter.c: Now "Esc" key acts like the "Start Again" button. Fixes enhancement request #482642. Patch by Ray Strode <rstrode@redhat.com>. svn path=/branches/gnome-2-20/; revision=5547
-rw-r--r--ChangeLog6
-rw-r--r--gui/gdmlogin.c17
-rw-r--r--gui/greeter/greeter.c20
3 files changed, 35 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index b706e30c..c549e9f8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2007-12-10 Brian Cameron <brian.cameron@sun.com>
+
+ * gui/gdmlogin.c, gui/greeter/greeter.c: Now "Esc" key acts like the
+ "Start Again" button. Fixes enhancement request #482642. Patch by
+ Ray Strode <rstrode@redhat.com>.
+
2007-12-03 Brian Cameron <brian.cameron@sun.com>
* gui/gdmsetup.c: In gdm_load_displays, just return if keys
diff --git a/gui/gdmlogin.c b/gui/gdmlogin.c
index f673ddff..fa989863 100644
--- a/gui/gdmlogin.c
+++ b/gui/gdmlogin.c
@@ -2132,6 +2132,20 @@ gdm_set_welcomemsg (void)
g_free (greeting);
}
+static gboolean
+key_press_event (GtkWidget *widget, GdkEventKey *key, gpointer data)
+{
+ if (key->keyval == GDK_Escape)
+ {
+ printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_CANCEL);
+ fflush (stdout);
+
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
static void
gdm_login_gui_init (void)
{
@@ -2168,6 +2182,9 @@ gdm_login_gui_init (void)
gtk_widget_set_events (login, GDK_ALL_EVENTS_MASK);
+ g_signal_connect (G_OBJECT (login), "key_press_event",
+ G_CALLBACK (key_press_event), NULL);
+
gtk_window_set_title (GTK_WINDOW (login), _("GDM Login"));
/* connect for fingering */
if (browser_ok && gdm_config_get_bool (GDM_KEY_BROWSER))
diff --git a/gui/greeter/greeter.c b/gui/greeter/greeter.c
index dcb1da66..4a0cdf13 100644
--- a/gui/greeter/greeter.c
+++ b/gui/greeter/greeter.c
@@ -592,10 +592,16 @@ process_operation (guchar op_code,
static gboolean
key_press_event (GtkWidget *widget, GdkEventKey *key, gpointer data)
{
- if (DOING_GDM_DEVELOPMENT && (key->keyval == GDK_Escape))
+ if (key->keyval == GDK_Escape)
{
- process_operation (GDM_QUIT, NULL);
-
+ if (DOING_GDM_DEVELOPMENT)
+ process_operation (GDM_QUIT, NULL);
+ else
+ {
+ printf ("%c%c%c\n", STX, BEL, GDM_INTERRUPT_CANCEL);
+ fflush (stdout);
+ }
+
return TRUE;
}
@@ -1355,11 +1361,9 @@ main (int argc, char *argv[])
window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- if G_UNLIKELY (DOING_GDM_DEVELOPMENT) {
- g_signal_connect (G_OBJECT (window), "key_press_event",
- G_CALLBACK (key_press_event), NULL);
- }
-
+ g_signal_connect (G_OBJECT (window), "key_press_event",
+ G_CALLBACK (key_press_event), NULL);
+
canvas = gnome_canvas_new_aa ();
GTK_WIDGET_UNSET_FLAGS (canvas, GTK_CAN_FOCUS);
gnome_canvas_set_scroll_region (GNOME_CANVAS (canvas),