2006-08-16 [colin] 2.4.0cvs54
[claws.git] / src / ssl_manager.c
index a4861b1e71829ec471d1595231cc2a76056af448..c80d80350fbf497b602ff1264a652bccf0f4b136 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2005 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2006 Hiroyuki Yamamoto and the Sylpheed-Claws team
  * This file Copyright (C) 2002-2005 Colin Leroy <colin@colino.net>
  *
  * This program is free software; you can redistribute it and/or modify
@@ -25,6 +25,7 @@
 #include <gtk/gtkwidget.h>
 #include <glib.h>
 #include <glib/gi18n.h>
+#include <gdk/gdkkeysyms.h>
 #include <sys/types.h>
 #include <dirent.h>
 
@@ -60,6 +61,8 @@ static struct SSLManager
 static void ssl_manager_view_cb                (GtkWidget *widget, gpointer data);
 static void ssl_manager_delete_cb      (GtkWidget *widget, gpointer data);
 static void ssl_manager_close_cb       (GtkWidget *widget, gpointer data);
+static gboolean key_pressed            (GtkWidget *widget, GdkEventKey *event,
+                                        gpointer data);
 static void ssl_manager_load_certs     (void);
 static void ssl_manager_double_clicked(GtkTreeView             *list_view,
                                        GtkTreePath             *path,
@@ -158,6 +161,8 @@ void ssl_manager_create(void)
        gtk_window_set_resizable(GTK_WINDOW (window), TRUE);
        g_signal_connect(G_OBJECT(window), "delete_event",
                         G_CALLBACK(ssl_manager_close_cb), NULL);
+       g_signal_connect(G_OBJECT(window), "key_press_event",
+                        G_CALLBACK(key_pressed), NULL);
        MANAGE_WINDOW_SIGNALS_CONNECT (window);
 
        hbox1 = gtk_hbox_new(FALSE, 6);
@@ -326,6 +331,13 @@ static void ssl_manager_close_cb(GtkWidget *widget,
        ssl_manager_close();
 }
 
+static gboolean key_pressed(GtkWidget *widget, GdkEventKey *event, gpointer data)
+{
+       if (event && event->keyval == GDK_Escape)
+               ssl_manager_close();
+       return FALSE;
+}
+
 static void ssl_manager_double_clicked(GtkTreeView             *list_view,
                                        GtkTreePath             *path,
                                        GtkTreeViewColumn       *column,
@@ -373,11 +385,11 @@ static void ssl_manager_delete_cb(GtkWidget *widget,
 
        val = alertpanel_full(_("Delete certificate"),
                              _("Do you really want to delete this certificate?"),
-                             GTK_STOCK_YES, GTK_STOCK_NO, NULL, FALSE,
-                             NULL, ALERT_WARNING, G_ALERTALTERNATE);
+                             GTK_STOCK_CANCEL, GTK_STOCK_DELETE, NULL, FALSE,
+                             NULL, ALERT_WARNING, G_ALERTDEFAULT);
 
                             
-       if (val != G_ALERTDEFAULT)
+       if (val != G_ALERTALTERNATE)
                return;
        
        ssl_certificate_delete_from_disk(cert);