From 25f3a2e650c22f1d12e14cd318a80c07c82468a7 Mon Sep 17 00:00:00 2001 From: David Hampton Date: Sat, 31 Dec 2005 01:36:46 +0000 Subject: [PATCH] Enhance the dialog so that pressing the Enter key in any field will activate the dialog. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@12216 57a11ea4-9604-0410-9ed3-97b8803252fd --- ChangeLog | 4 ++++ src/gnome-utils/dialog-transfer.c | 21 +++++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/ChangeLog b/ChangeLog index 5921fe4d7a..c9b282f1f5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2005-12-30 David Hampton + * src/gnome-utils/dialog-transfer.c: Enhance the dialog so that + pressing the Enter key in any field will activate the dialog. + Fixes bug 125565. + * src/gnome/glade/budget.glade: Remove gtk2.6 properties from the file. diff --git a/src/gnome-utils/dialog-transfer.c b/src/gnome-utils/dialog-transfer.c index 412a79df0b..bcd8ca7052 100644 --- a/src/gnome-utils/dialog-transfer.c +++ b/src/gnome-utils/dialog-transfer.c @@ -213,6 +213,23 @@ gnc_xfer_dialog_toggle_cb(GtkToggleButton *button, gpointer data) gnc_tree_view_account_refilter (GNC_TREE_VIEW_ACCOUNT (data)); } +static gboolean +gnc_xfer_dialog_key_press_cb (GtkWidget *widget, + GdkEventKey *event, + gpointer unused) +{ + GtkWidget *toplevel; + + if ((event->keyval == GDK_Return) || (event->keyval == GDK_KP_Enter)) { + toplevel = gtk_widget_get_toplevel (widget); + if (GTK_WIDGET_TOPLEVEL(toplevel) && GTK_IS_WINDOW(toplevel)) { + gtk_window_activate_default(GTK_WINDOW(toplevel)); + return TRUE; + } + } + return FALSE; +} + static void gnc_xfer_dialog_set_price_auto (XferDialog *xferData, gboolean currency_active, @@ -480,6 +497,8 @@ gnc_xfer_dialog_fill_tree_view(XferDialog *xferData, /* Have to force the filter once. Alt is to show income/expense by default. */ gnc_tree_view_account_refilter (GNC_TREE_VIEW_ACCOUNT (tree_view)); gtk_widget_show(GTK_WIDGET(tree_view)); + g_signal_connect (G_OBJECT (tree_view), "key-press-event", + G_CALLBACK (gnc_xfer_dialog_key_press_cb), NULL); selection = gtk_tree_view_get_selection (tree_view); gtk_tree_selection_set_mode (selection, GTK_SELECTION_BROWSE); @@ -1668,10 +1687,12 @@ gnc_xfer_dialog_create(GtkWidget *parent, XferDialog *xferData) xferData->amount_edit = amount; entry = gnc_amount_edit_gtk_entry (GNC_AMOUNT_EDIT (amount)); + gtk_entry_set_activates_default (GTK_ENTRY(entry), TRUE); g_signal_connect (G_OBJECT (entry), "focus-out-event", G_CALLBACK (gnc_xfer_amount_update_cb), xferData); date = gnc_date_edit_new(time (NULL), FALSE, FALSE); + gnc_date_activates_default (GNC_DATE_EDIT(date), TRUE); hbox = glade_xml_get_widget (xml, "date_hbox"); gtk_box_pack_end(GTK_BOX(hbox), date, TRUE, TRUE, 0);