From 00b34c0b3d6912f88a67c1c9a860cbca42484e6e Mon Sep 17 00:00:00 2001 From: Federico Mena Quintero Date: Wed, 26 Mar 2008 20:22:50 +0000 Subject: [PATCH] Make 'Ok' work for the file chooser entry 2008-03-26 Federico Mena Quintero * gtk/gtkfilechooserentry.c (commit_completion_and_refresh): New helper function; factored out from the functions that commit the current suggested autocompletion and that refresh the entry's paths. (gtk_file_chooser_entry_activate): Use commit_completion_and_refresh(). (_gtk_file_chooser_entry_get_file_part): Likewise. (_gtk_file_chooser_entry_get_current_folder): Likewise. This makes the entry have the correct paths when *not* using any form of completion (and makes the file chooser work when clicking the OK button). Signed-off-by: Federico Mena Quintero svn path=/trunk/; revision=19937 --- ChangeLog | 12 ++++++++++++ gtk/gtkfilechooserentry.c | 26 ++++++++++---------------- 2 files changed, 22 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index 2e70115e1..bb6dabd02 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2008-03-26 Federico Mena Quintero + + * gtk/gtkfilechooserentry.c (commit_completion_and_refresh): New + helper function; factored out from the functions that commit the + current suggested autocompletion and that refresh the entry's paths. + (gtk_file_chooser_entry_activate): Use commit_completion_and_refresh(). + (_gtk_file_chooser_entry_get_file_part): Likewise. + (_gtk_file_chooser_entry_get_current_folder): Likewise. This + makes the entry have the correct paths when *not* using any form + of completion (and makes the file chooser work when clicking the + OK button). + 2008-03-25 Richard Hult * gdk/quartz/gdkevents-quartz.c: diff --git a/gtk/gtkfilechooserentry.c b/gtk/gtkfilechooserentry.c index afcb5bf20..217de4f62 100644 --- a/gtk/gtkfilechooserentry.c +++ b/gtk/gtkfilechooserentry.c @@ -1165,10 +1165,8 @@ gtk_file_chooser_entry_focus_out_event (GtkWidget *widget, } static void -gtk_file_chooser_entry_activate (GtkEntry *entry) +commit_completion_and_refresh (GtkFileChooserEntry *chooser_entry) { - GtkFileChooserEntry *chooser_entry = GTK_FILE_CHOOSER_ENTRY (entry); - if (chooser_entry->has_completion) { gtk_editable_set_position (GTK_EDITABLE (entry), @@ -1176,7 +1174,14 @@ gtk_file_chooser_entry_activate (GtkEntry *entry) } refresh_current_folder_and_file_part (chooser_entry, REFRESH_WHOLE_TEXT); +} +static void +gtk_file_chooser_entry_activate (GtkEntry *entry) +{ + GtkFileChooserEntry *chooser_entry = GTK_FILE_CHOOSER_ENTRY (entry); + + commit_completion_and_refresh (chooser_entry); GTK_ENTRY_CLASS (_gtk_file_chooser_entry_parent_class)->activate (entry); } @@ -1663,11 +1668,7 @@ _gtk_file_chooser_entry_set_base_folder (GtkFileChooserEntry *chooser_entry, const GtkFilePath * _gtk_file_chooser_entry_get_current_folder (GtkFileChooserEntry *chooser_entry) { - if (chooser_entry->has_completion) - { - gtk_editable_set_position (GTK_EDITABLE (chooser_entry), - GTK_ENTRY (chooser_entry)->text_length); - } + commit_completion_and_refresh (chooser_entry); return chooser_entry->current_folder_path; } @@ -1686,14 +1687,7 @@ _gtk_file_chooser_entry_get_current_folder (GtkFileChooserEntry *chooser_entry) const gchar * _gtk_file_chooser_entry_get_file_part (GtkFileChooserEntry *chooser_entry) { - if (chooser_entry->has_completion) - { - gtk_editable_set_position (GTK_EDITABLE (chooser_entry), - GTK_ENTRY (chooser_entry)->text_length); - } - - refresh_current_folder_and_file_part (chooser_entry, REFRESH_WHOLE_TEXT); - + commit_completion_and_refresh (chooser_entry); return chooser_entry->file_part; }