summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntónio Fernandes <antoniof@gnome.org>2023-04-29 22:30:36 +0000
committerAntónio Fernandes <antoniof@gnome.org>2023-04-29 22:30:36 +0000
commitfc2669f63c5def1528dda2e7833db5774aa08e22 (patch)
tree067a8eafbd35e590f2d17de0aaeb31ae557403d0
parent7140cdfaab5cbd4f594da4adf6ed6f98cecf3979 (diff)
downloadgvfs-fc2669f63c5def1528dda2e7833db5774aa08e22.tar.gz
mtp: Emit delete event on device when disconnected
Otherwise clients won't realize the root file is gone. Related to https://gitlab.gnome.org/GNOME/nautilus/-/issues/371
-rw-r--r--daemon/gvfsbackendmtp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/daemon/gvfsbackendmtp.c b/daemon/gvfsbackendmtp.c
index fd297be1..0bc35b7a 100644
--- a/daemon/gvfsbackendmtp.c
+++ b/daemon/gvfsbackendmtp.c
@@ -638,6 +638,11 @@ on_uevent (GUdevClient *client, gchar *action, GUdevDevice *device, gpointer use
(char *)path);
}
+ /* Finally, emit delete event to tell the clients the device root file is gone. */
+ g_hash_table_foreach (op_backend->monitors,
+ emit_delete_event,
+ (char *)"/");
+
op_backend->force_unmounted = TRUE;
g_atomic_int_set (&op_backend->unmount_started, TRUE);
g_vfs_backend_force_unmount ((GVfsBackend*)op_backend);