[nautilus] file-operations: Fix undo-duplicate critical
- From: Ernestas Kulik <ernestask src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus] file-operations: Fix undo-duplicate critical
- Date: Thu, 26 Jul 2018 14:24:54 +0000 (UTC)
commit bb5e23e8a5de8931eba6e46657f42e516bc632e4
Author: Alexandru Fazakas <alex fazakas97 gmail com>
Date: Thu Jul 26 14:22:02 2018 +0000
file-operations: Fix undo-duplicate critical
src/nautilus-file-operations.c | 26 +++++++++++++-------------
1 file changed, 13 insertions(+), 13 deletions(-)
---
diff --git a/src/nautilus-file-operations.c b/src/nautilus-file-operations.c
index 4ae4ca383..801f2a8f0 100644
--- a/src/nautilus-file-operations.c
+++ b/src/nautilus-file-operations.c
@@ -5775,14 +5775,18 @@ nautilus_file_operations_copy (GTask *task,
if (!nautilus_file_undo_manager_is_operating ())
{
- GFile *src_dir;
+ g_autoptr (GFile) src_dir = NULL;
src_dir = g_file_get_parent (job->files->data);
- job->common.undo_info = nautilus_file_undo_info_ext_new (NAUTILUS_FILE_UNDO_OP_COPY,
- g_list_length (job->files),
- src_dir, job->destination);
-
- g_object_unref (src_dir);
+ /* In the case of duplicate, the undo_info is already set, so we don't want to
+ * overwrite it wrongfully.
+ */
+ if (job->common.undo_info != NULL)
+ {
+ job->common.undo_info = nautilus_file_undo_info_ext_new (NAUTILUS_FILE_UNDO_OP_COPY,
+ g_list_length (job->files),
+ src_dir, job->destination);
+ }
}
nautilus_progress_info_start (job->common.progress);
@@ -6454,7 +6458,7 @@ nautilus_file_operations_move (GTask *task,
if (!nautilus_file_undo_manager_is_operating ())
{
- GFile *src_dir;
+ g_autoptr (GFile) src_dir = NULL;
src_dir = g_file_get_parent ((job->files)->data);
@@ -6470,8 +6474,6 @@ nautilus_file_operations_move (GTask *task,
g_list_length (job->files),
src_dir, job->destination);
}
-
- g_object_unref (src_dir);
}
common = &job->common;
@@ -6842,13 +6844,12 @@ nautilus_file_operations_link (GList *files,
if (!nautilus_file_undo_manager_is_operating ())
{
- GFile *src_dir;
+ g_autoptr (GFile) src_dir = NULL;
src_dir = g_file_get_parent (files->data);
job->common.undo_info = nautilus_file_undo_info_ext_new (NAUTILUS_FILE_UNDO_OP_CREATE_LINK,
g_list_length (files),
src_dir, target_dir);
- g_object_unref (src_dir);
}
task = g_task_new (NULL, job->common.cancellable, link_task_done, job);
@@ -6882,14 +6883,13 @@ nautilus_file_operations_duplicate (GList *files,
if (!nautilus_file_undo_manager_is_operating ())
{
- GFile *src_dir;
+ g_autoptr (GFile) src_dir = NULL;
src_dir = g_file_get_parent (files->data);
job->common.undo_info =
nautilus_file_undo_info_ext_new (NAUTILUS_FILE_UNDO_OP_DUPLICATE,
g_list_length (files),
src_dir, src_dir);
- g_object_unref (src_dir);
}
task = g_task_new (NULL, job->common.cancellable, copy_task_done, job);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]