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 800920a7b0600b1677d231c514345fe9f6687d82 Author: Eike Rathke <er...@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 (cherry picked from commit dc9eac5a5f4f247ba5efb67931ffde61f2c8d5b6) Reviewed-on: https://gerrit.libreoffice.org/25678 Reviewed-by: Eike Rathke <er...@redhat.com> Tested-by: Eike Rathke <er...@redhat.com> 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 f5ad18c..224908d 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) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits