summaryrefslogtreecommitdiff
path: root/oox/source/vml/vmlshape.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'oox/source/vml/vmlshape.cxx')
-rw-r--r--oox/source/vml/vmlshape.cxx14
1 files changed, 10 insertions, 4 deletions
diff --git a/oox/source/vml/vmlshape.cxx b/oox/source/vml/vmlshape.cxx
index 4f0f952d3b4a..363738533a33 100644
--- a/oox/source/vml/vmlshape.cxx
+++ b/oox/source/vml/vmlshape.cxx
@@ -385,10 +385,16 @@ void lcl_SetAnchorType(PropertySet& rPropSet, const ShapeTypeModel& rTypeModel)
{
if ( rTypeModel.maPosition == "absolute" )
{
- // I'm not sure if AT_PAGE is always correct here (not sure what the parent that
- // the spec talks about can be), but with Writer SwXDrawPage::add()
- // always in practice uses this because of pDoc->GetCurrentLayout() being NULL at this point.
- rPropSet.setProperty(PROP_AnchorType, text::TextContentAnchorType_AT_PAGE);
+ if (rTypeModel.moWrapAnchorX.get() == "page" && rTypeModel.moWrapAnchorY.get() == "page")
+ {
+ // I'm not sure if AT_PAGE is always correct here (not sure what the parent that
+ // the spec talks about can be), but with Writer SwXDrawPage::add()
+ // always in practice uses this because of pDoc->GetCurrentLayout() being NULL at this point.
+ rPropSet.setProperty(PROP_AnchorType, text::TextContentAnchorType_AT_PAGE);
+ }
+ else
+ // Map to as-character by default, that fixes vertical position of some textframes.
+ rPropSet.setProperty(PROP_AnchorType, text::TextContentAnchorType_AT_CHARACTER);
}
else if( rTypeModel.maPosition == "relative" )
{ // I'm not very sure this is correct either.