]> git.0d.be Git - empathy.git/commitdiff
ft-manager: allow closing the dialog with C-w or Esc
authorJonny Lamb <jonnylamb@gnome.org>
Fri, 23 Oct 2009 12:33:39 +0000 (13:33 +0100)
committerJonny Lamb <jonnylamb@gnome.org>
Fri, 23 Oct 2009 12:33:39 +0000 (13:33 +0100)
Signed-off-by: Jonny Lamb <jonnylamb@gnome.org>
src/empathy-ft-manager.c

index bc4f2a7b70bf16e42964e1b93bd8e172845d00b1..9f6c1f3271f0e49ecaf1fd0400a88212733aae90 100644 (file)
@@ -33,6 +33,7 @@
 
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
+#include <gdk/gdkkeysyms.h>
 
 #define DEBUG_FLAG EMPATHY_DEBUG_FT
 #include <libempathy/empathy-debug.h>
@@ -950,6 +951,21 @@ ft_manager_destroy_cb (GtkWidget *widget,
   g_object_unref (manager);
 }
 
+static gboolean
+ft_manager_key_press_event_cb (GtkWidget *widget,
+                               GdkEventKey *event,
+                               gpointer user_data)
+{
+  if ((event->state & GDK_CONTROL_MASK && event->keyval == GDK_w)
+      || event->keyval == GDK_Escape)
+    {
+      gtk_widget_destroy (widget);
+      return TRUE;
+    }
+
+  return FALSE;
+}
+
 static void
 ft_manager_build_ui (EmpathyFTManager *manager)
 {
@@ -978,6 +994,7 @@ ft_manager_build_ui (EmpathyFTManager *manager)
       "ft_manager_dialog", "response", ft_manager_response_cb,
       "ft_manager_dialog", "delete-event", ft_manager_delete_event_cb,
       "ft_manager_dialog", "configure-event", ft_manager_configure_event_cb,
+      "ft_manager_dialog", "key-press-event", ft_manager_key_press_event_cb,
       NULL);
 
   empathy_builder_unref_and_keep_widget (gui, priv->window);