diff options
author | Matthias Clasen <mclasen@redhat.com> | 2023-05-16 00:09:56 +0000 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2023-05-16 00:09:56 +0000 |
commit | e8c7d0e5ec994ed0ff503842ac13ef4fe43e1d76 (patch) | |
tree | 41e6eaef4ac2038b7de31999e7627b99a98634db | |
parent | 3fb06ca29d71e81cdd8fffb3d79403798fb7a1f0 (diff) | |
parent | 133231e12b995202627a227a32acb26627a6cec4 (diff) | |
download | gtk+-e8c7d0e5ec994ed0ff503842ac13ef4fe43e1d76.tar.gz |
Merge branch 'wip/corey/filesystemmodel' into 'main'
filesystemmodel: Ignore changes on the parent directory
Closes #4233
See merge request GNOME/gtk!5970
-rw-r--r-- | .gitignore | 1 | ||||
-rw-r--r-- | gtk/gtkfilechooserwidget.c | 4 | ||||
-rw-r--r-- | gtk/gtkfilesystemmodel.c | 4 |
3 files changed, 8 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore index 025c6c9c02..050320de0e 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /subprojects/*/ +.flatpak-builder/ diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c index 352e7fbd28..ad3d79ad94 100644 --- a/gtk/gtkfilechooserwidget.c +++ b/gtk/gtkfilechooserwidget.c @@ -580,7 +580,10 @@ gtk_file_chooser_widget_finalize (GObject *object) stop_loading_and_clear_list_model (impl, FALSE); search_clear_model (impl, FALSE); recent_clear_model (impl, FALSE); + g_clear_object (&impl->recent_model); + g_clear_object (&impl->search_model); g_clear_object (&impl->model_for_search); + g_clear_object (&impl->browse_files_model); g_clear_object (&impl->selection_model); g_clear_object (&impl->sort_model); @@ -3961,6 +3964,7 @@ set_list_model (GtkFileChooserWidget *impl, set_busy_cursor (impl, TRUE); + g_clear_object (&impl->browse_files_model); impl->browse_files_model = _gtk_file_system_model_new_for_directory (impl->current_folder, MODEL_ATTRIBUTES); diff --git a/gtk/gtkfilesystemmodel.c b/gtk/gtkfilesystemmodel.c index a772d67aa6..10c5ec09bc 100644 --- a/gtk/gtkfilesystemmodel.c +++ b/gtk/gtkfilesystemmodel.c @@ -747,7 +747,9 @@ gtk_file_system_model_monitor_change (GFileMonitor * monitor, case G_FILE_MONITOR_EVENT_CREATED: case G_FILE_MONITOR_EVENT_CHANGED: case G_FILE_MONITOR_EVENT_ATTRIBUTE_CHANGED: - /* We can treat all of these the same way */ + if (g_file_equal (file, model->dir)) + return; + /* We can treat all children the same way */ g_file_query_info_async (file, model->attributes, G_FILE_QUERY_INFO_NONE, |