Make 'Ok' work for the file chooser entry

2008-03-26  Federico Mena Quintero  <federico@novell.com>

	* 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 <federico@gnu.org>

svn path=/trunk/; revision=19937
This commit is contained in:
Federico Mena Quintero
2008-03-26 20:22:50 +00:00
committed by Federico Mena Quintero
parent 9d8b846e80
commit 00b34c0b3d
2 changed files with 22 additions and 16 deletions

View File

@ -1,3 +1,15 @@
2008-03-26 Federico Mena Quintero <federico@novell.com>
* 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 <richard@imendio.com>
* gdk/quartz/gdkevents-quartz.c:

View File

@ -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;
}