Bug 114627 -- ESC should dismiss default plugin dialog. Patch by

Andre  Dahlqvist <anedah-9@student.luth.se>, r=serge, sr=blizzard, a=asa
This commit is contained in:
bzbarsky%mit.edu 2002-07-17 04:36:13 +00:00
Родитель a3df96ac8b
Коммит 4d677afdd7
1 изменённых файлов: 21 добавлений и 0 удалений

Просмотреть файл

@ -35,6 +35,7 @@
#include <stdio.h>
#include <gtk/gtk.h>
#include <gdk/gdkx.h>
#include <gdk/gdkkeysyms.h>
/* Xlib/Xt stuff */
#include <X11/Xlib.h>
@ -120,6 +121,20 @@ DialogCancelClicked (GtkButton *button, gpointer data)
destroyWidget((PluginInstance*) data);
}
/* function that closes the dialog if ESC is pressed */
static gboolean
DialogEscapePressed (GtkWidget *widget, GdkEventKey *event, gpointer data)
{
if (event->keyval == GDK_Escape)
{
gtk_signal_emit_stop_by_name (GTK_OBJECT (widget), "key_press_event");
gtk_object_destroy (GTK_OBJECT (widget));
return TRUE;
}
return FALSE;
}
/* a handy procedure to add a widget and pack it as well */
static GtkWidget *
AddWidget (GtkWidget *widget, GtkWidget *packingbox)
@ -265,6 +280,9 @@ makeWidget(PluginInstance *This)
GTK_DIALOG(dialogWindow)->action_area);
gtk_object_set_data(GTK_OBJECT(okButton), DIALOGID, dialogWindow);
GTK_WIDGET_SET_FLAGS (okButton, GTK_CAN_DEFAULT);
gtk_widget_grab_default(okButton);
cancelButton= AddWidget(gtk_button_new_with_label (CANCEL_BUTTON),
GTK_DIALOG(dialogWindow)->action_area);
@ -274,6 +292,9 @@ makeWidget(PluginInstance *This)
gtk_signal_connect (GTK_OBJECT(cancelButton), "clicked",
GTK_SIGNAL_FUNC(DialogCancelClicked), This);
gtk_signal_connect(GTK_OBJECT(dialogWindow), "key_press_event",
GTK_SIGNAL_FUNC (DialogEscapePressed), NULL);
/* hookup to when the dialog is destroyed */
gtk_signal_connect(GTK_OBJECT(dialogWindow), "destroy",
GTK_SIGNAL_FUNC(onDestroyWidget), This);