GtkFileChooserEntry: handle slow folders by not autocompleting when the cursor is not at the end of the text

2009-01-22  Federico Mena Quintero  <federico@novell.com>

	* gtk/gtkfilechooserentry.c (autocomplete): Relax the assertion;
	just do nothing if the folder is not loaded or if the cursor position
	is not at the end of the text.  A very slow-to-load folder can get
	us into the latter state if the user starts typing first.

Signed-off-by: Federico Mena Quintero <federico@novell.com>

svn path=/trunk/; revision=22186
This commit is contained in:
Federico Mena Quintero 2009-01-23 01:52:36 +00:00 committed by Federico Mena Quintero
parent 0b2554da86
commit ba54644c38
2 changed files with 11 additions and 3 deletions

View File

@ -1,3 +1,10 @@
2009-01-22 Federico Mena Quintero <federico@novell.com>
* gtk/gtkfilechooserentry.c (autocomplete): Relax the assertion;
just do nothing if the folder is not loaded or if the cursor position
is not at the end of the text. A very slow-to-load folder can get
us into the latter state if the user starts typing first.
2008-01-22 Matthias Clasen <mnclasen@redhat.com>
* gtk/gtkaction.c: Revert the last change, since it breaks

View File

@ -1630,9 +1630,10 @@ refresh_current_folder_and_file_part (GtkFileChooserEntry *chooser_entry,
static void
autocomplete (GtkFileChooserEntry *chooser_entry)
{
g_assert (chooser_entry->current_folder != NULL);
g_assert (_gtk_folder_is_finished_loading (chooser_entry->current_folder));
g_assert (gtk_editable_get_position (GTK_EDITABLE (chooser_entry)) == GTK_ENTRY (chooser_entry)->text_length);
if (!(chooser_entry->current_folder != NULL
&& _gtk_folder_is_finished_loading (chooser_entry->current_folder)
&& gtk_editable_get_position (GTK_EDITABLE (chooser_entry)) == GTK_ENTRY (chooser_entry)->text_length))
return;
append_common_prefix (chooser_entry, TRUE, FALSE);
}