Clear cached row sensitivity when the filter changes

Now that filters may affect sensitivity of rows, we need
to clear the sensitivity column from the cache when the
filter changes. This fixes the problem where selecting a
different filter does not update the sensitivity of folders
until you change directories.
This commit is contained in:
Matthias Clasen 2012-07-15 00:39:02 -04:00
parent 46c1ea98d2
commit 79c1095512

View File

@ -6204,13 +6204,6 @@ gtk_file_chooser_default_unmap (GtkWidget *widget)
GTK_WIDGET_CLASS (_gtk_file_chooser_default_parent_class)->unmap (widget);
}
static void
install_list_model_filter (GtkFileChooserDefault *impl)
{
_gtk_file_system_model_set_filter (impl->browse_files_model,
impl->current_filter);
}
#define COMPARE_DIRECTORIES \
GtkFileChooserDefault *impl = user_data; \
GtkFileSystemModel *fs_model = GTK_FILE_SYSTEM_MODEL (model); \
@ -6991,7 +6984,7 @@ set_list_model (GtkFileChooserDefault *impl,
g_signal_connect (impl->browse_files_model, "finished-loading",
G_CALLBACK (browse_files_model_finished_loading_cb), impl);
install_list_model_filter (impl);
_gtk_file_system_model_set_filter (impl->browse_files_model, impl->current_filter);
profile_end ("end", NULL);
@ -9688,13 +9681,22 @@ set_current_filter (GtkFileChooserDefault *impl,
filter_index);
if (impl->browse_files_model)
install_list_model_filter (impl);
{
_gtk_file_system_model_set_filter (impl->browse_files_model, impl->current_filter);
_gtk_file_system_model_clear_cache (impl->browse_files_model, MODEL_COL_IS_SENSITIVE);
}
if (impl->search_model)
_gtk_file_system_model_set_filter (impl->search_model, filter);
{
_gtk_file_system_model_set_filter (impl->search_model, filter);
_gtk_file_system_model_clear_cache (impl->search_model, MODEL_COL_IS_SENSITIVE);
}
if (impl->recent_model)
_gtk_file_system_model_set_filter (impl->recent_model, filter);
{
_gtk_file_system_model_set_filter (impl->recent_model, filter);
_gtk_file_system_model_clear_cache (impl->recent_model, MODEL_COL_IS_SENSITIVE);
}
g_object_notify (G_OBJECT (impl), "filter");
}