Blob Blame History Raw
From b6270f320dbac5ec5a181037dddeefb81aa0dbca Mon Sep 17 00:00:00 2001
Message-Id: <b6270f320dbac5ec5a181037dddeefb81aa0dbca.1418931724.git.erack@redhat.com>
From: Eike Rathke <erack@redhat.com>
Date: Thu, 18 Dec 2014 20:07:55 +0100
Subject: [PATCH] fdo#68385 update references only if cut originates from the
 same document
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------erAck-patch-parts"

This is a multi-part message in MIME format.
--------------erAck-patch-parts
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit


Change-Id: Ia7b27309251cf9e47505c58d8ed0172d134280f4
(cherry picked from commit f2ac9fab2677a6a718f251baef75d3cae96d1f01)
---
 sc/source/core/data/document.cxx | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)


--------------erAck-patch-parts
Content-Type: text/x-patch; name="0001-fdo-68385-update-references-only-if-cut-originates-f.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-fdo-68385-update-references-only-if-cut-originates-f.patch"

diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index c6c3196..b423f05 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -2552,11 +2552,16 @@ void ScDocument::CopyBlockFromClip(
                 aRefCxt.mnTabDelta = nDz;
                 if (rCxt.getClipDoc()->GetClipParam().mbCutMode)
                 {
-                    bool bOldInserting = IsInsertingFromOtherDoc();
-                    SetInsertingFromOtherDoc( true);
-                    aRefCxt.meMode = URM_MOVE;
-                    UpdateReference(aRefCxt, rCxt.getUndoDoc(), false);
-                    SetInsertingFromOtherDoc( bOldInserting);
+                    // Update references only if cut originates from the same
+                    // document we are pasting into.
+                    if (rCxt.getClipDoc()->GetPool() == GetPool())
+                    {
+                        bool bOldInserting = IsInsertingFromOtherDoc();
+                        SetInsertingFromOtherDoc( true);
+                        aRefCxt.meMode = URM_MOVE;
+                        UpdateReference(aRefCxt, rCxt.getUndoDoc(), false);
+                        SetInsertingFromOtherDoc( bOldInserting);
+                    }
                 }
                 else
                 {

--------------erAck-patch-parts--