[Libreoffice-commits] core.git: Branch 'feature/gsoc14-draw-chained-text-boxes' - svx/source
matteocam
matteo.campanelli at gmail.com
Fri Jun 19 19:08:43 PDT 2015
svx/source/svdraw/svdotext.cxx | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
New commits:
commit d910aeb4e8b73e9679cdbc954cbf82217b02ff3e
Author: matteocam <matteo.campanelli at gmail.com>
Date: Fri Jun 19 21:52:56 2015 -0400
Other changes related to finding overflow in drawing outl
Change-Id: I7f5b1996c622cce53a4497e7faf579efdbb8646f
diff --git a/svx/source/svdraw/svdotext.cxx b/svx/source/svdraw/svdotext.cxx
index b6a90e0..3c394de 100644
--- a/svx/source/svdraw/svdotext.cxx
+++ b/svx/source/svdraw/svdotext.cxx
@@ -1970,14 +1970,19 @@ void SdrTextObj::onOverflowStatusEvent( )
// Pushes text in next link on the fly
if ( mbToBeChained ) {
SdrOutliner &aDrawOutliner = ImpGetDrawOutliner();
- if (pEdtOutl != NULL)
- mpOverflowingText = pEdtOutl->GetOverflowingText();
- else if(GetTextChain()->GetLinkHandlingUnderflow(this)) {
+
+ // If this is the a post-underflow-type of overflow then we cannot
+ // trust the editing outl on the text since it has still the old one
+ if(GetTextChain()->GetLinkHandlingUnderflow(this)) {
OutlinerParaObject *pPObj = GetOutlinerParaObject();
+ aDrawOutliner.SetUpdateMode(true);
+ aDrawOutliner.SetMaxAutoPaperSize(pEdtOutl->GetMaxAutoPaperSize());
aDrawOutliner.SetText(*pPObj);
aDrawOutliner.IsPageOverflow(); // Check for overflow to set flags
mpOverflowingText = aDrawOutliner.GetOverflowingText();
- } else {
+ } else if (pEdtOutl != NULL)
+ mpOverflowingText = pEdtOutl->GetOverflowingText();
+ else {
assert(0); // Should never happen. FIXME(matteocam)
}
@@ -2014,11 +2019,9 @@ void SdrTextObj::onUnderflowStatusEvent( )
OutlinerParaObject *pNextLinkWholeText = pNextLink->GetOutlinerParaObject();
if (pNextLinkWholeText) {
OutlinerParaObject *pCurText;
- if (pEdtOutl) {
- pCurText = pEdtOutl->CreateParaObject();
- } else {
- pCurText = GetOutlinerParaObject();
- }
+
+ pCurText = pEdtOutl->CreateParaObject();
+
// NewTextForCurBox = Txt(CurBox) ++ Txt(NextBox)
aDrawOutliner.SetText(*pCurText);
aDrawOutliner.AddText(*pNextLinkWholeText);
@@ -2150,6 +2153,8 @@ void SdrTextObj::onChainingEvent()
{
// If handling underflow we check for overflow in the object
Outliner &aDrawOutliner = ImpGetDrawOutliner();
+ aDrawOutliner.SetUpdateMode(true);
+ aDrawOutliner.SetMaxAutoPaperSize(pEdtOutl->GetMaxAutoPaperSize());
OutlinerParaObject *pPObj = GetOutlinerParaObject();
aDrawOutliner.SetText(*pPObj);
bIsPageOverflow = aDrawOutliner.IsPageOverflow();
More information about the Libreoffice-commits
mailing list