From 9162afac50cc420698877f76756a47256e333f14 Mon Sep 17 00:00:00 2001 From: Xavier Claessens Date: Sat, 7 Jun 2008 17:23:09 +0000 Subject: Close contact list when Escape is pressed. Fixes bug #536628 (Ross Burton). svn path=/trunk/; revision=1151 --- src/empathy-status-icon.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'src/empathy-status-icon.c') diff --git a/src/empathy-status-icon.c b/src/empathy-status-icon.c index c030a5887..15695d8fb 100644 --- a/src/empathy-status-icon.c +++ b/src/empathy-status-icon.c @@ -26,6 +26,7 @@ #include #include #include +#include #include @@ -275,7 +276,7 @@ status_icon_set_visibility (EmpathyStatusIcon *icon, GList *accounts; empathy_window_present (GTK_WINDOW (priv->window), TRUE); - + /* Show the accounts dialog if there is no enabled accounts */ accounts = mc_accounts_list_by_enabled (TRUE); if (accounts) { @@ -326,6 +327,17 @@ status_icon_delete_event_cb (GtkWidget *widget, return TRUE; } +static gboolean +status_icon_key_press_event_cb (GtkWidget *window, + GdkEventKey *event, + EmpathyStatusIcon *icon) +{ + if (event->keyval == GDK_Escape) { + status_icon_set_visibility (icon, FALSE, TRUE); + } + return FALSE; +} + static void status_icon_activate_cb (GtkStatusIcon *status_icon, EmpathyStatusIcon *icon) @@ -752,6 +764,10 @@ empathy_status_icon_new (GtkWindow *window, gboolean hide_contact_list) priv->window = g_object_ref (window); + g_signal_connect (priv->window, "key-press-event", + G_CALLBACK (status_icon_key_press_event_cb), + icon); + g_signal_connect (priv->window, "delete-event", G_CALLBACK (status_icon_delete_event_cb), icon); -- cgit v1.2.3