Mercurial > gftp.yaz
diff src/gtk/misc-gtk.c @ 72:c48f19f24050
2002-12-2 Brian Masney <masneyb@gftp.org>
* src/gtk/misc-gtk.c (MakeEditDialog) - bind to enter and esc keys
author | masneyb |
---|---|
date | Tue, 03 Dec 2002 02:22:32 +0000 |
parents | cd3e457cbc85 |
children | fe0b21c006f6 |
line wrap: on
line diff
--- a/src/gtk/misc-gtk.c Mon Dec 02 23:51:31 2002 +0000 +++ b/src/gtk/misc-gtk.c Tue Dec 03 02:22:32 2002 +0000 @@ -832,7 +832,7 @@ dialog_response (GtkWidget * widget, gint response, gftp_dialog_data * ddata) { if (ddata->edit == NULL) - gtk_widget_destroy (widget); + gtk_widget_destroy (ddata->dialog); switch (response) { @@ -847,13 +847,42 @@ } if (ddata->edit != NULL) - gtk_widget_destroy (widget); + gtk_widget_destroy (ddata->dialog); g_free (ddata); } #endif +static gint +dialog_keypress (GtkWidget * widget, GdkEventKey * event, gpointer data) +{ + if (event->type != GDK_KEY_PRESS) + return (FALSE); + + if (event->keyval == GDK_KP_Enter || event->keyval == GDK_Return) + { +#if GTK_MAJOR_VERSION == 1 + ok_dialog_response (widget, data); +#else + dialog_response (widget, GTK_RESPONSE_YES, data); +#endif + return (TRUE); + } + else if (event->keyval == GDK_Escape) + { +#if GTK_MAJOR_VERSION == 1 + cancel_dialog_response (widget, data); +#else + dialog_response (widget, GTK_RESPONSE_NO, data); +#endif + return (TRUE); + } + + return (FALSE); +} + + void MakeEditDialog (char *diagtxt, char *infotxt, char *deftext, int passwd_item, char *checktext, @@ -926,6 +955,9 @@ gtk_widget_show (tempwid); ddata->edit = gtk_entry_new (); + gtk_signal_connect (GTK_OBJECT (ddata->edit), "key_press_event", + GTK_SIGNAL_FUNC (dialog_keypress), (gpointer) ddata); + gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->vbox), ddata->edit, TRUE, TRUE, 0); gtk_widget_grab_focus (ddata->edit); @@ -1051,8 +1083,8 @@ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", - GTK_SIGNAL_FUNC (ok_dialog_response), - ddata); + GTK_SIGNAL_FUNC (ok_dialog_response), ddata); + gtk_widget_grab_default (tempwid); gtk_widget_show (tempwid); @@ -1061,8 +1093,7 @@ gtk_box_pack_start (GTK_BOX (GTK_DIALOG (dialog)->action_area), tempwid, FALSE, FALSE, 0); gtk_signal_connect (GTK_OBJECT (tempwid), "clicked", - GTK_SIGNAL_FUNC (cancel_dialog_response), - ddata); + GTK_SIGNAL_FUNC (cancel_dialog_response), ddata); gtk_widget_show (tempwid); #else