summaryrefslogtreecommitdiff
path: root/sc/source/core/data/documen2.cxx
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2016-11-26 11:23:24 +0100
committerEike Rathke <erack@redhat.com>2016-11-26 10:55:25 +0000
commit6af70ec9d0f87553a7fb795d957d41cf6d2d7c6d (patch)
treea64e048ad970df19f002661f5dae4bec9e846c33 /sc/source/core/data/documen2.cxx
parent1866cd8654496fd8052409b1f36d018affe3eb4b (diff)
Resolves: tdf#103493 copying note captions needs a completed destination sheet
If a copied sheet's destination position is before its source position, the source's ScColumn::nTab members still pointed to the original source position when the captions were created, which led to the wrong drawing layer page being used and at the end the drawing shapes not being correctly assigned. Change-Id: I9c3cc97d8b4486756023b9ab02da28079a1d0627 (cherry picked from commit 0a2a7436b4041bb34b01a183b9264af8488d1af3) Reviewed-on: https://gerrit.libreoffice.org/31228 Reviewed-by: Eike Rathke <erack@redhat.com> Tested-by: Eike Rathke <erack@redhat.com>
Diffstat (limited to 'sc/source/core/data/documen2.cxx')
-rw-r--r--sc/source/core/data/documen2.cxx8
1 files changed, 7 insertions, 1 deletions
diff --git a/sc/source/core/data/documen2.cxx b/sc/source/core/data/documen2.cxx
index 20db59e1ad80..766aa9f0fe12 100644
--- a/sc/source/core/data/documen2.cxx
+++ b/sc/source/core/data/documen2.cxx
@@ -899,7 +899,7 @@ bool ScDocument::CopyTab( SCTAB nOldPos, SCTAB nNewPos, const ScMarkData* pOnlyM
sc::CopyToDocContext aCopyDocCxt(*this);
maTabs[nOldPos]->CopyToTable(aCopyDocCxt, 0, 0, MAXCOL, MAXROW, InsertDeleteFlags::ALL,
(pOnlyMarked != nullptr), maTabs[nNewPos], pOnlyMarked,
- false /*bAsLink*/, true /*bColRowFlags*/, bGlobalNamesToLocal );
+ false /*bAsLink*/, true /*bColRowFlags*/, bGlobalNamesToLocal, false /*bCopyCaptions*/ );
maTabs[nNewPos]->SetTabBgColor(maTabs[nOldPos]->GetTabBgColor());
SCTAB nDz = nNewPos - nOldPos;
@@ -938,6 +938,12 @@ bool ScDocument::CopyTab( SCTAB nOldPos, SCTAB nNewPos, const ScMarkData* pOnlyM
// Copy the RTL settings
maTabs[nNewPos]->SetLayoutRTL(maTabs[nOldPos]->IsLayoutRTL());
maTabs[nNewPos]->SetLoadingRTL(maTabs[nOldPos]->IsLoadingRTL());
+
+ // Finally copy the note captions, which need
+ // 1. the updated source ScColumn::nTab members if nNewPos <= nOldPos
+ // 2. row heights and column widths of the destination
+ // 3. RTL settings of the destination
+ maTabs[nOldPos]->CopyCaptionsToTable( 0, 0, MAXCOL, MAXROW, maTabs[nNewPos], true /*bCloneCaption*/);
}
return bValid;