summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorey Berla <corey@berla.me>2023-01-16 21:15:07 -0800
committerCorey Berla <corey@berla.me>2023-01-16 21:21:53 -0800
commit677b408cd5fea8dda04869eb9ba94d9eeddbbad0 (patch)
tree469a8f8fda6cc6bae1bf6f86b7ed60006b65cdd0
parent109cd125a73793b99060fca6c07faf37a90e27a3 (diff)
downloadnautilus-677b408cd5fea8dda04869eb9ba94d9eeddbbad0.tar.gz
list-base: Fallback to add_files in file_changed
We assume that the item associated with the given file in file_changed always exists. That assumption might fail, for example if renaming "a" to ".a" and then attempting an undo operation. If the item doesn't exist in the current model, simply fallback to add the item. Fixes: https://gitlab.gnome.org/GNOME/nautilus/-/issues/1513
-rw-r--r--src/nautilus-list-base.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/src/nautilus-list-base.c b/src/nautilus-list-base.c
index 05385f561..cc79f16ea 100644
--- a/src/nautilus-list-base.c
+++ b/src/nautilus-list-base.c
@@ -62,6 +62,9 @@ struct _NautilusListBasePrivate
G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE (NautilusListBase, nautilus_list_base, NAUTILUS_TYPE_FILES_VIEW)
+static void real_add_files (NautilusFilesView *files_view,
+ GList *files);
+
static const char *
get_sort_attribute_from_sort_type (NautilusFileSortType sort_type)
{
@@ -1047,7 +1050,15 @@ real_file_changed (NautilusFilesView *files_view,
NautilusViewItem *item;
item = nautilus_view_model_get_item_from_file (priv->model, file);
- nautilus_view_item_file_changed (item);
+ if (item != NULL)
+ {
+ nautilus_view_item_file_changed (item);
+ }
+ else
+ {
+ g_autoptr (GList) files = g_list_append (NULL, file);
+ real_add_files (files_view, files);
+ }
}
static GList *