[Libreoffice-commits] core.git: sc/inc sc/source
Eike Rathke
erack at redhat.com
Mon May 30 16:34:35 UTC 2016
sc/inc/document.hxx | 2 +-
sc/source/core/data/document.cxx | 2 +-
sc/source/core/data/document10.cxx | 7 ++++++-
3 files changed, 8 insertions(+), 3 deletions(-)
New commits:
commit dc9eac5a5f4f247ba5efb67931ffde61f2c8d5b6
Author: Eike Rathke <erack at redhat.com>
Date: Mon May 30 18:30:48 2016 +0200
Resolves: tdf#97158 CopyOneCellFromClip() does not handle multiple sheets
... so check that and bail out to let the remainder of CopyFromClip()
handle it.
Change-Id: I9d139de905fd108ae41fed79a38860058525272c
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 5696f26..01eadaf 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -1419,7 +1419,7 @@ public:
sc::CopyFromClipContext& rCxt, const ScMarkData& rMark, sc::ColumnSpanSet& rBroadcastSpans );
bool CopyOneCellFromClip(
- sc::CopyFromClipContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
+ sc::CopyFromClipContext& rCxt, const ScMarkData& rMark, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
void CopyBlockFromClip(
sc::CopyFromClipContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2,
const ScMarkData& rMark, SCsCOL nDx, SCsROW nDy );
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 68b1f8f..af943d4 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -2806,7 +2806,7 @@ void ScDocument::CopyFromClip( const ScRange& rDestRange, const ScMarkData& rMar
else
DeleteArea(nCol1, nRow1, nCol2, nRow2, rMark, nDelFlag, false, &aBroadcastSpans);
- if (CopyOneCellFromClip(aCxt, nCol1, nRow1, nCol2, nRow2))
+ if (CopyOneCellFromClip(aCxt, rMark, nCol1, nRow1, nCol2, nRow2))
continue;
SCCOL nC1 = nCol1;
diff --git a/sc/source/core/data/document10.cxx b/sc/source/core/data/document10.cxx
index 59aff13..e99d0b4 100644
--- a/sc/source/core/data/document10.cxx
+++ b/sc/source/core/data/document10.cxx
@@ -65,7 +65,7 @@ void ScDocument::DeleteBeforeCopyFromClip(
}
bool ScDocument::CopyOneCellFromClip(
- sc::CopyFromClipContext& rCxt, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 )
+ sc::CopyFromClipContext& rCxt, const ScMarkData& rMark, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 )
{
ScDocument* pClipDoc = rCxt.getClipDoc();
if (pClipDoc->GetClipParam().mbCutMode)
@@ -82,6 +82,11 @@ bool ScDocument::CopyOneCellFromClip(
if (nDestColSize < nSrcColSize)
return false;
+ if (rCxt.getClipDoc()->maTabs.size() > 1 || rMark.GetSelectCount() > 1)
+ // Copying from multiple source sheets or to multiple destination
+ // sheets is not handled here.
+ return false;
+
ScAddress aSrcPos = aClipRange.aStart;
for (SCCOL nCol = aClipRange.aStart.Col(); nCol <= aClipRange.aEnd.Col(); ++nCol)
More information about the Libreoffice-commits
mailing list