From 393d0f92384003d2a477cceffbcf5d80c050f127 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sun, 29 Feb 2004 03:41:42 +0000 Subject: [PATCH] Make Tab and Shift-Tab work when the completion popup is shown. Sun Feb 29 04:43:29 2004 Matthias Clasen * gtk/gtkentry.c (gtk_entry_completion_key_press): Make Tab and Shift-Tab work when the completion popup is shown. --- ChangeLog | 5 +++++ ChangeLog.pre-2-10 | 5 +++++ ChangeLog.pre-2-4 | 5 +++++ ChangeLog.pre-2-6 | 5 +++++ ChangeLog.pre-2-8 | 5 +++++ gtk/gtkentry.c | 29 ++++++++++++++++++++++++----- 6 files changed, 49 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 082bbe7c14..44024f2495 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sun Feb 29 04:43:29 2004 Matthias Clasen + + * gtk/gtkentry.c (gtk_entry_completion_key_press): Make Tab and + Shift-Tab work when the completion popup is shown. + 2004-02-28 Federico Mena Quintero * gtk/gtkfilechooserdefault.c (create_folder_tree): Use "Name" for diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 082bbe7c14..44024f2495 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +Sun Feb 29 04:43:29 2004 Matthias Clasen + + * gtk/gtkentry.c (gtk_entry_completion_key_press): Make Tab and + Shift-Tab work when the completion popup is shown. + 2004-02-28 Federico Mena Quintero * gtk/gtkfilechooserdefault.c (create_folder_tree): Use "Name" for diff --git a/ChangeLog.pre-2-4 b/ChangeLog.pre-2-4 index 082bbe7c14..44024f2495 100644 --- a/ChangeLog.pre-2-4 +++ b/ChangeLog.pre-2-4 @@ -1,3 +1,8 @@ +Sun Feb 29 04:43:29 2004 Matthias Clasen + + * gtk/gtkentry.c (gtk_entry_completion_key_press): Make Tab and + Shift-Tab work when the completion popup is shown. + 2004-02-28 Federico Mena Quintero * gtk/gtkfilechooserdefault.c (create_folder_tree): Use "Name" for diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 082bbe7c14..44024f2495 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +Sun Feb 29 04:43:29 2004 Matthias Clasen + + * gtk/gtkentry.c (gtk_entry_completion_key_press): Make Tab and + Shift-Tab work when the completion popup is shown. + 2004-02-28 Federico Mena Quintero * gtk/gtkfilechooserdefault.c (create_folder_tree): Use "Name" for diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 082bbe7c14..44024f2495 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +Sun Feb 29 04:43:29 2004 Matthias Clasen + + * gtk/gtkentry.c (gtk_entry_completion_key_press): Make Tab and + Shift-Tab work when the completion popup is shown. + 2004-02-28 Federico Mena Quintero * gtk/gtkfilechooserdefault.c (create_folder_tree): Use "Name" for diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c index ab5c2c9e4c..1a28f86002 100644 --- a/gtk/gtkentry.c +++ b/gtk/gtkentry.c @@ -4634,14 +4634,33 @@ gtk_entry_completion_key_press (GtkWidget *widget, return TRUE; } - else if (event->keyval == GDK_ISO_Enter || - event->keyval == GDK_Return || - event->keyval == GDK_Escape) + else if (event->keyval == GDK_Escape) { _gtk_entry_completion_popdown (completion); - if (event->keyval == GDK_Escape) - return TRUE; + return TRUE; + } + else if (event->keyval == GDK_Tab || + event->keyval == GDK_KP_Tab || + event->keyval == GDK_ISO_Left_Tab) + { + GtkWidget *entry; + GtkDirectionType dir = event->keyval == GDK_ISO_Left_Tab ? + GTK_DIR_TAB_BACKWARD : GTK_DIR_TAB_FORWARD; + + _gtk_entry_completion_popdown (completion); + + entry = gtk_entry_completion_get_entry (completion); + + gtk_widget_child_focus (gtk_widget_get_toplevel (entry), + GTK_DIR_TAB_FORWARD); + + return TRUE; + } + else if (event->keyval == GDK_ISO_Enter || + event->keyval == GDK_Return) + { + _gtk_entry_completion_popdown (completion); if (completion->priv->current_selected < matches) {