editeng/source/editeng/impedit3.cxx | 6 ++++++ svx/source/svdraw/textchainflow.cxx | 25 +++++-------------------- 2 files changed, 11 insertions(+), 20 deletions(-)
New commits: commit b35661fab277d98e9b45df6626e947c1edd597dd Author: matteocam <[email protected]> Date: Thu Aug 20 18:01:20 2015 +0200 Set UpdateMode to true only if necessary Change-Id: If4c0517328271ce2b1c7e184981de6c2b7c14560 diff --git a/svx/source/svdraw/textchainflow.cxx b/svx/source/svdraw/textchainflow.cxx index 9739eee..cad0b3c 100644 --- a/svx/source/svdraw/textchainflow.cxx +++ b/svx/source/svdraw/textchainflow.cxx @@ -71,12 +71,12 @@ void TextChainFlow::impCheckForFlowEvents(SdrOutliner *pFlowOutl, SdrOutliner *p { bool bOldUpdateMode = pFlowOutl->GetUpdateMode(); - // We need this since it's required to check overflow - pFlowOutl->SetUpdateMode(true); - // XXX: This could be reorganized moving most of this stuff inside EditingTextChainFlow if (pParamOutl != NULL) { + // We need this since it's required to check overflow + pFlowOutl->SetUpdateMode(true); + // XXX: does this work if you do it before setting the text? Seems so. impSetFlowOutlinerParams(pFlowOutl, pParamOutl); } @@ -105,7 +105,8 @@ void TextChainFlow::impCheckForFlowEvents(SdrOutliner *pFlowOutl, SdrOutliner *p NULL; // Reset update mode // Reset it here because we use WriteRTF (needing updatemode = true) in the two constructors above - pFlowOutl->SetUpdateMode(bOldUpdateMode); + if (!bOldUpdateMode) // Reset only if the old value was false + pFlowOutl->SetUpdateMode(bOldUpdateMode); // NOTE: Must be called after mp*ChText abd b*flow have been set but before mbOFisUFinduced is reset impUpdateCursorInfo(); @@ -155,11 +156,6 @@ bool TextChainFlow::IsUnderflow() const // XXX:Would it be possible to unify undeflow and its possibly following overrflow? void TextChainFlow::ExecuteUnderflow(SdrOutliner *pOutl) { - bool bOldUpdateMode = pOutl->GetUpdateMode(); - - // We need this since it's required by WriteRTF - pOutl->SetUpdateMode(true); - //GetTextChain()->SetNilChainingEvent(mpTargetLink, true); // making whole text @@ -180,9 +176,6 @@ void TextChainFlow::ExecuteUnderflow(SdrOutliner *pOutl) pOutl->SetMaxAutoPaperSize(aOldSize); pOutl->SetText(*pNewText); - // Reset update mode - pOutl->SetUpdateMode(bOldUpdateMode); - //GetTextChain()->SetNilChainingEvent(mpTargetLink, false); // Check for new overflow @@ -191,11 +184,6 @@ void TextChainFlow::ExecuteUnderflow(SdrOutliner *pOutl) void TextChainFlow::ExecuteOverflow(SdrOutliner *pNonOverflOutl, SdrOutliner *pOverflOutl) { - bool bOldUpdateMode = pNonOverflOutl->GetUpdateMode(); - - // We need this since it's required by WriteRTF - pNonOverflOutl->SetUpdateMode(true); - //GetTextChain()->SetNilChainingEvent(mpTargetLink, true); // Leave only non overflowing text impLeaveOnlyNonOverflowingText(pNonOverflOutl); @@ -206,9 +194,6 @@ void TextChainFlow::ExecuteOverflow(SdrOutliner *pNonOverflOutl, SdrOutliner *pO impMoveChainedTextToNextLink(pOverflOutl); } - // Reset update mode - pNonOverflOutl->SetUpdateMode(bOldUpdateMode); - //GetTextChain()->SetNilChainingEvent(mpTargetLink, false); } commit 0dccde9fc86aa74061d39e72c5139477d560c0a3 Author: matteocam <[email protected]> Date: Thu Aug 20 17:48:06 2015 +0200 Show height of first line during OF check Change-Id: I20e5ca90cb147c841645fd28df0846f41a3dcb42 diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx index 7965a06..8a38539 100644 --- a/editeng/source/editeng/impedit3.cxx +++ b/editeng/source/editeng/impedit3.cxx @@ -4658,6 +4658,12 @@ void ImpEditEngine::ImplUpdateOverflowingLineNum(sal_uInt32 nPaperHeight, EditLine &aLine = pPara->GetLines()[nLine]; nLH = aLine.GetHeight(); nY += nLH; + + // Debugging output + if (nLine == 0) { + fprintf(stderr, "[CHAINING] First line has height %d\n", nLH); + } + if ( nY > nPaperHeight ) // found first line overflowing { mnOverflowingLine = nLine; _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
