From 9f8b8d32b2d55dd3d3cdeed426af259862bf7b47 Mon Sep 17 00:00:00 2001 From: rbuj Date: Sat, 10 Aug 2019 15:02:12 +0200 Subject: Copy file and keep timestamps of original file including remotes The timestamps are reset to the current time, even if the source & target folders support these GFileInfo attributes. Closes #1226 --- libcaja-private/caja-file-operations.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/libcaja-private/caja-file-operations.c b/libcaja-private/caja-file-operations.c index 59d9b728..ab2a7719 100644 --- a/libcaja-private/caja-file-operations.c +++ b/libcaja-private/caja-file-operations.c @@ -3690,7 +3690,7 @@ copy_move_directory (CopyMoveJob *copy_job, if (create_dest) { flags = (readonly_source_fs) ? G_FILE_COPY_NOFOLLOW_SYMLINKS | G_FILE_COPY_TARGET_DEFAULT_PERMS - : G_FILE_COPY_NOFOLLOW_SYMLINKS; + : G_FILE_COPY_NOFOLLOW_SYMLINKS | G_FILE_COPY_ALL_METADATA; /* Ignore errors here. Failure to copy metadata is not a hard error */ g_file_copy_attributes (src, *dest, flags, @@ -4246,6 +4246,13 @@ copy_move_file (CopyMoveJob *copy_job, } if (res) { + if (!copy_job->is_move) { + /* Ignore errors here. Failure to copy metadata is not a hard error */ + g_file_copy_attributes (src, dest, + flags | G_FILE_COPY_ALL_METADATA, + job->cancellable, NULL); + } + transfer_info->num_files ++; report_copy_progress (copy_job, source_info, transfer_info); -- cgit v1.2.1