Process the result of refreshing the folder during autocompletion

(start_autocompletion): Process the result from refresh...().  We
	only do completion in the REFRESH_OK case.  For the error cases,
	we don't do anything, as this is autocompletion and must not
	result in non-asked-for errors popping up.

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

svn path=/trunk/; revision=22180
This commit is contained in:
Federico Mena Quintero 2009-01-23 00:54:08 +00:00 committed by Federico Mena Quintero
parent c1205bbbb9
commit fe636e4be2
2 changed files with 26 additions and 9 deletions

View File

@ -32,6 +32,10 @@
(commit_completion_and_refresh): Don't do anything with the result
of refresh...(), since this function doesn't get called during
completion-related interaction.
(start_autocompletion): Process the result from refresh...(). We
only do completion in the REFRESH_OK case. For the error cases,
we don't do anything, as this is autocompletion and must not
result in non-asked-for errors popping up.
2009-01-22 Matthew Barnes <mbarnes@redhat.com>

View File

@ -1584,21 +1584,34 @@ autocomplete (GtkFileChooserEntry *chooser_entry)
static void
start_autocompletion (GtkFileChooserEntry *chooser_entry)
{
/* FMQ: get result from the function below */
refresh_current_folder_and_file_part (chooser_entry, REFRESH_UP_TO_CURSOR_POSITION);
RefreshStatus status;
if (!chooser_entry->current_folder)
status = refresh_current_folder_and_file_part (chooser_entry, REFRESH_UP_TO_CURSOR_POSITION);
switch (status)
{
case REFRESH_OK:
g_assert (chooser_entry->current_folder_file != NULL);
if (chooser_entry->current_folder && _gtk_folder_is_finished_loading (chooser_entry->current_folder))
autocomplete (chooser_entry);
else
chooser_entry->load_complete_action = LOAD_COMPLETE_AUTOCOMPLETE;
break;
case REFRESH_INVALID_INPUT:
case REFRESH_INCOMPLETE_HOSTNAME:
case REFRESH_NONEXISTENT:
case REFRESH_NOT_LOCAL:
/* We don't beep or anything, since this is autocompletion - the user
* didn't request any action explicitly.
*/
return;
}
break;
if (_gtk_folder_is_finished_loading (chooser_entry->current_folder))
autocomplete (chooser_entry);
else
chooser_entry->load_complete_action = LOAD_COMPLETE_AUTOCOMPLETE;
default:
g_assert_not_reached ();
}
}
static gboolean