summaryrefslogtreecommitdiff
path: root/svx/source/sdr
diff options
context:
space:
mode:
Diffstat (limited to 'svx/source/sdr')
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofpageobj.cxx7
-rw-r--r--svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx12
-rw-r--r--svx/source/sdr/properties/textproperties.cxx21
3 files changed, 29 insertions, 11 deletions
diff --git a/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx b/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx
index 5ef26193d4b3..34731f100b5d 100644
--- a/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofpageobj.cxx
@@ -273,9 +273,16 @@ namespace sdr
// init extractor, guarantee existance, set page there
mpExtractor->SetStartPage(pPage);
+ // #i105548# also need to copy the VOCRedirector for sub-content creation
+ mpExtractor->SetViewObjectContactRedirector(GetObjectContact().GetViewObjectContactRedirector());
+
// create page content
xPageContent = mpExtractor->createPrimitive2DSequenceForPage(rDisplayInfo);
+ // #i105548# reset VOCRedirector to not accidentially have a pointer to a
+ // temporary class, so calls to it are avoided safely
+ mpExtractor->SetViewObjectContactRedirector(0);
+
// reset recursion flag
bInCreatePrimitive2D = false;
}
diff --git a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
index 2320944afd03..089f75aa8ade 100644
--- a/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
+++ b/svx/source/sdr/primitive2d/sdrtextprimitive2d.cxx
@@ -77,8 +77,16 @@ namespace
if(pPage && pPage->GetModel())
{
- const sal_uInt16 nPageCount(pPage->GetModel()->GetPageCount());
- nRetval = ((sal_Int16)nPageCount - 1) / 2;
+ if( (pPage->GetPageNum() == 0) && !pPage->IsMasterPage() )
+ {
+ // handout page!
+ return pPage->GetModel()->getHandoutPageCount();
+ }
+ else
+ {
+ const sal_uInt16 nPageCount(pPage->GetModel()->GetPageCount());
+ nRetval = ((sal_Int16)nPageCount - 1) / 2;
+ }
}
return nRetval;
diff --git a/svx/source/sdr/properties/textproperties.cxx b/svx/source/sdr/properties/textproperties.cxx
index 348c319e256e..091656e1f261 100644
--- a/svx/source/sdr/properties/textproperties.cxx
+++ b/svx/source/sdr/properties/textproperties.cxx
@@ -185,18 +185,21 @@ namespace sdr
{
SdrText* pText = rObj.getText( nCount );
OutlinerParaObject* pParaObj = pText->GetOutlinerParaObject();
- rOutliner.SetText(*pParaObj);
- sal_uInt32 nParaCount(rOutliner.GetParagraphCount());
-
- if(nParaCount)
+ if( pParaObj )
{
- ESelection aSelection( 0, 0, EE_PARA_ALL, EE_PARA_ALL);
- rOutliner.RemoveAttribs(aSelection, sal_True, 0);
+ rOutliner.SetText(*pParaObj);
+ sal_uInt32 nParaCount(rOutliner.GetParagraphCount());
- OutlinerParaObject* pTemp = rOutliner.CreateParaObject(0, (sal_uInt16)nParaCount);
- rOutliner.Clear();
+ if(nParaCount)
+ {
+ ESelection aSelection( 0, 0, EE_PARA_ALL, EE_PARA_ALL);
+ rOutliner.RemoveAttribs(aSelection, sal_True, 0);
- rObj.NbcSetOutlinerParaObjectForText( pTemp, pText );
+ OutlinerParaObject* pTemp = rOutliner.CreateParaObject(0, (sal_uInt16)nParaCount);
+ rOutliner.Clear();
+
+ rObj.NbcSetOutlinerParaObjectForText( pTemp, pText );
+ }
}
}
}