diff options
author | Eike Rathke <erack@redhat.com> | 2016-11-26 11:23:24 +0100 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2016-11-26 10:55:25 +0000 |
commit | 6af70ec9d0f87553a7fb795d957d41cf6d2d7c6d (patch) | |
tree | a64e048ad970df19f002661f5dae4bec9e846c33 /sc/source/core/data/documen2.cxx | |
parent | 1866cd8654496fd8052409b1f36d018affe3eb4b (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.cxx | 8 |
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; |