--- xchat-2.0.5/src/fe-gtk/search.c 2002-12-08 14:11:30.000000000 +0000 +++ xchat-dsd/src/fe-gtk/search.c 2003-10-30 19:07:56.457690528 +0000 @@ -27,6 +27,7 @@ #include #include #include +#include #include "../common/xchat.h" #include "../common/util.h" @@ -82,6 +83,13 @@ search_search (sess, gtk_entry_get_text (GTK_ENTRY (entry))); } +static gboolean +search_win_key_press (GtkWidget * win, GdkEventKey * event) { + if(event->keyval == GDK_Escape) + gtk_widget_destroy (win); + return FALSE; +} + void search_open (session * sess) { @@ -90,6 +98,8 @@ last = NULL; win = mg_create_generic_tab ("search", _("X-Chat: Search"), TRUE, FALSE, NULL, NULL, 0, 0, &vbox, 0); + g_signal_connect(G_OBJECT(win), "key_press_event", G_CALLBACK (search_win_key_press), + NULL); gtk_container_set_border_width (GTK_CONTAINER (win), 20); --- xchat-2.0.5/src/fe-gtk/about.c 2003-05-11 18:09:40.000000000 +0100 +++ xchat-dsd/src/fe-gtk/about.c 2003-10-30 19:28:26.230736608 +0000 @@ -34,6 +34,7 @@ #include #include #include +#include #ifdef USE_XLIB #include @@ -82,6 +83,13 @@ return 0; } +static gboolean +about_key_press(GtkWidget * about, GdkEventKey * event) { + if(event->keyval == GDK_Escape) + gtk_widget_destroy (about); + return FALSE; +} + void menu_about (GtkWidget * wid, gpointer sess) { @@ -104,6 +112,8 @@ gtk_window_set_transient_for (GTK_WINDOW (about), parent_window); g_signal_connect (G_OBJECT (about), "destroy", G_CALLBACK (about_close), 0); + g_signal_connect(G_OBJECT (about), "key_press_event", + G_CALLBACK (about_key_press), 0); vbox = GTK_DIALOG (about)->vbox; --- xchat-2.0.5/src/fe-gtk/ascii.c 2003-05-28 18:02:00.000000000 +0100 +++ xchat-dsd/src/fe-gtk/ascii.c 2003-10-30 19:10:30.610255776 +0000 @@ -29,6 +29,7 @@ #include #include #include +#include #include "../common/xchat.h" #include "../common/xchatc.h" @@ -120,6 +121,13 @@ } } +static gboolean +ascii_key_press(GtkWidget * win, GdkEventKey * event) { + if(event->keyval == GDK_Escape) + gtk_widget_destroy (win); + return FALSE; +} + void ascii_open (void) { @@ -131,6 +139,8 @@ win = mg_create_generic_tab ("charmap", _("Character Chart"), TRUE, TRUE, NULL, NULL, 0, 0, &vbox, NULL); gtk_container_set_border_width (GTK_CONTAINER (win), 5); + g_signal_connect (G_OBJECT (win), "key_press_event", + G_CALLBACK (ascii_key_press), NULL); label = gtk_label_new (""); --- xchat-2.0.5/src/fe-gtk/plugingui.c 2003-08-17 08:25:02.000000000 +0100 +++ xchat-dsd/src/fe-gtk/plugingui.c 2003-10-30 19:11:17.741090800 +0000 @@ -34,6 +34,7 @@ #include #include #include +#include #include "../common/xchat.h" #define PLUGIN_C @@ -196,6 +197,13 @@ g_free (file); } +static gboolean +plugingui_key_press (GtkWidget * win, GdkEventKey * event) { + if(event->keyval == GDK_Escape) + gtk_widget_destroy (win); + return FALSE; +} + void plugingui_open (void) { @@ -211,6 +219,8 @@ plugin_window = gtk_dialog_new (); g_signal_connect (G_OBJECT (plugin_window), "destroy", G_CALLBACK (plugingui_close), 0); + g_signal_connect (G_OBJECT (plugin_window), "key_press_event", + G_CALLBACK (plugingui_key_press), 0); gtk_window_set_default_size (GTK_WINDOW (plugin_window), 450, 200); vbox = GTK_DIALOG (plugin_window)->vbox; action_area = GTK_DIALOG (plugin_window)->action_area; --- xchat-2.0.5/src/fe-gtk/editlist.c 2003-07-27 04:53:38.000000000 +0100 +++ xchat-dsd/src/fe-gtk/editlist.c 2003-10-30 19:11:30.385168608 +0000 @@ -30,6 +30,7 @@ #include #include #include +#include #include "../common/xchat.h" #include "../common/cfgfiles.h" @@ -295,6 +296,13 @@ editlist_gui_window = 0; } +static gboolean +editlist_gui_key_press (GtkWidget * win, GdkEventKey * event) { + if(event->keyval == GDK_Escape) + gtk_widget_destroy (win); + return FALSE; +} + void editlist_gui_open (GSList * list, char *title, char *wmclass, char *file, char *help) @@ -318,7 +326,9 @@ editlist_gui_window = mg_create_generic_tab (wmclass, title, TRUE, FALSE, editlist_gui_close, NULL, 450, 250, &vbox, 0); - + g_signal_connect (G_OBJECT (editlist_gui_window), "key_press_event", + G_CALLBACK (editlist_gui_key_press), 0); + editlist_gui_list = gtkutil_clist_new (2, titles, vbox, GTK_POLICY_ALWAYS, editlist_gui_row_selected, 0, editlist_gui_row_unselected, 0, --- xchat-2.0.5/src/fe-gtk/setup.c 2003-08-13 08:36:06.000000000 +0100 +++ xchat-dsd/src/fe-gtk/setup.c 2003-10-30 19:12:21.041467680 +0000 @@ -41,6 +41,7 @@ #include #include #include +#include GtkStyle *create_input_style (void); @@ -1024,12 +1025,21 @@ palette_save (); } +static gboolean +setup_key_press(GtkWidget * win, GdkEventKey * event) { + if(event->keyval == GDK_Escape) + gtk_widget_destroy (win); + return FALSE; +} + static GtkWidget * setup_window_open (void) { GtkWidget *wid, *win, *vbox, *hbox, *hbbox; win = gtkutil_window_new (_("X-Chat: Preferences"), "prefs", 0, 0, 3); + g_signal_connect (G_OBJECT (win), "key_press_event", + G_CALLBACK(setup_key_press), 0); vbox = gtk_vbox_new (FALSE, 5); gtk_container_set_border_width (GTK_CONTAINER (vbox), 6); --- xchat-2.0.5/src/fe-gtk/servlistgui.c 2003-06-22 12:39:34.000000000 +0100 +++ xchat-dsd/src/fe-gtk/servlistgui.c 2003-10-30 19:20:24.422982520 +0000 @@ -28,6 +28,7 @@ #include #include #include +#include #include "../common/xchat.h" #include "../common/xchatc.h" @@ -1144,6 +1145,20 @@ return tree; } +static gboolean +servlist_key_press(GtkWidget * win, GdkEventKey * event) { + if(event->keyval == GDK_Escape) { + servlist_savegui (); + gtk_widget_destroy (serverlist_win); + serverlist_win = NULL; + + if (sess_list == NULL) + xchat_exit (); + } + + return FALSE; +} + /*static void skip_motd (GtkWidget * igad, gpointer serv) { @@ -1214,6 +1229,8 @@ g_signal_connect (G_OBJECT (win), "delete_event", G_CALLBACK (servlist_delete_cb), 0); + g_signal_connect (G_OBJECT (win), "key_press_event", + G_CALLBACK (servlist_key_press), 0); vbox = gtk_vbox_new (FALSE, 5); gtk_container_add (GTK_CONTAINER (win), vbox);