sw/source/core/bastyp/index.cxx | 9 ++++++++- sw/source/core/doc/docbm.cxx | 1 + 2 files changed, 9 insertions(+), 1 deletion(-)
New commits: commit 4a273473998a47ea7d125d3d4bd7e6d8b252767a Author: Michael Stahl <[email protected]> Date: Wed Jun 17 17:53:26 2015 +0200 sw: tweak CrossRefBookmark hack to re-sort if applied Change-Id: I8ea68819a87abecb2a6561fbd5b695902dd4af63 diff --git a/sw/source/core/doc/docbm.cxx b/sw/source/core/doc/docbm.cxx index 2cf2caf..930312c 100644 --- a/sw/source/core/doc/docbm.cxx +++ b/sw/source/core/doc/docbm.cxx @@ -636,6 +636,7 @@ namespace sw { namespace mark { // ensure that cross ref bookmark always starts at 0 aNewPosRel.nContent = 0; // HACK for WW8 import + isSortingNeeded = true; // and sort them to be safe... } aNewPosRel.nContent += pMark->GetMarkPos().nContent.GetIndex(); pMark->SetMarkPos(aNewPosRel); commit e679b83c386a5a4a73836327ae9d694721652db8 Author: Michael Stahl <[email protected]> Date: Wed Jun 17 17:48:07 2015 +0200 sw: avoid CrossRefBookmark assertion when exporting ooo83574-1.doc Follow-up to commit 27384cdf7df20d6bc46e5d028f27be41b49b0f02: avoid SwIndexReg::Update() correcting the index of CrossRefBookmark away from 0. Not sure if it wouldn't be better to remove the requirement that CrossRefBookmark must have index 0. Or perhaps remove the SwIndex from their position completely, like AT_PARA frame anchors. But since the whole bookmark stuff stupidly uses inheritance the base class has established a requirement that a mark has a position. But then again the CrossRefBookmark already cannot have a second position, in contrast to all other marks. Change-Id: If42cc48724de98151b02469850805f5c77e84c6b diff --git a/sw/source/core/bastyp/index.cxx b/sw/source/core/bastyp/index.cxx index dc5041f..edc2218 100644 --- a/sw/source/core/bastyp/index.cxx +++ b/sw/source/core/bastyp/index.cxx @@ -22,6 +22,8 @@ #include <assert.h> #include <sal/log.hxx> +#include <crossrefbookmark.hxx> + TYPEINIT0(SwIndexReg); SwIndex::SwIndex(SwIndexReg *const pReg, sal_Int32 const nIdx) @@ -265,7 +267,12 @@ void SwIndexReg::Update( pStt = rIdx.m_pNext; while( pStt ) { - pStt->m_nIndex = pStt->m_nIndex + nDiff; + // HACK: avoid updating position of cross-ref bookmarks + if (!pStt->m_pMark || nullptr == dynamic_cast< + ::sw::mark::CrossRefBookmark const*>(pStt->m_pMark)) + { + pStt->m_nIndex = pStt->m_nIndex + nDiff; + } pStt = pStt->m_pNext; } } _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
