summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
Diffstat (limited to 'oox')
-rw-r--r--oox/source/drawingml/textbodyproperties.cxx6
-rw-r--r--oox/source/drawingml/transform2dcontext.cxx56
2 files changed, 34 insertions, 28 deletions
diff --git a/oox/source/drawingml/textbodyproperties.cxx b/oox/source/drawingml/textbodyproperties.cxx
index 9899fbbe18e5..dfa3d6007bb5 100644
--- a/oox/source/drawingml/textbodyproperties.cxx
+++ b/oox/source/drawingml/textbodyproperties.cxx
@@ -81,9 +81,9 @@ void TextBodyProperties::pushRotationAdjustments( sal_Int32 nRotation )
// Hack for n#760986
// TODO: Preferred method would be to have a textbox on top
// of the shape and the place it according to the (off,ext)
- if( nOff == 0 && moTextOffLeft && mbAnchorCtr ) nVal = *moTextOffLeft;
- if( nOff == 1 && moTextOffUpper ) nVal = *moTextOffLeft;
- if( nOff == 2 && moTextOffRight && mbAnchorCtr ) nVal = *moTextOffRight;
+ if( nOff == 0 && moTextOffLeft ) nVal = *moTextOffLeft;
+ if( nOff == 1 && moTextOffUpper ) nVal = *moTextOffUpper;
+ if( nOff == 2 && moTextOffRight ) nVal = *moTextOffRight;
if( nOff == 3 && moTextOffLower ) nVal = *moTextOffLower;
if( nVal < 0 ) nVal = 0;
diff --git a/oox/source/drawingml/transform2dcontext.cxx b/oox/source/drawingml/transform2dcontext.cxx
index c036b5022158..d3f7f5ee4df3 100644
--- a/oox/source/drawingml/transform2dcontext.cxx
+++ b/oox/source/drawingml/transform2dcontext.cxx
@@ -55,37 +55,43 @@ ContextHandlerRef Transform2DContext::onCreateContext( sal_Int32 aElementToken,
{
if( mbtxXfrm )
{
- switch( aElementToken )
+ // Workaround: only for rectangles
+ const sal_Int32 nType = mrShape.getCustomShapeProperties()->getShapePresetType();
+ if( nType == XML_rect || nType == XML_roundRect )
{
- case A_TOKEN( off ):
- {
- OUString sXValue = rAttribs.getString( XML_x ).get();
- OUString sYValue = rAttribs.getString( XML_y ).get();
- if( !sXValue.isEmpty() )
- mrShape.getTextBody()->getTextProperties().moTextOffUpper = GetCoordinate( sXValue.toInt32() - mrShape.getPosition().X );
- if( !sYValue.isEmpty() )
- mrShape.getTextBody()->getTextProperties().moTextOffLeft = GetCoordinate( sYValue.toInt32() - mrShape.getPosition().Y );
- }
- break;
- case A_TOKEN( ext ):
- {
- const OUString sXValue = rAttribs.getString( XML_cx ).get();
- const OUString sYValue = rAttribs.getString( XML_cy ).get();
- if( !sXValue.isEmpty() )
+ switch( aElementToken )
+ {
+ case A_TOKEN( off ):
{
- mrShape.getTextBody()->getTextProperties().moTextOffRight = GetCoordinate(mrShape.getSize().Width - sXValue.toInt32());
- if( mrShape.getTextBody()->getTextProperties().moTextOffLeft )
- *mrShape.getTextBody()->getTextProperties().moTextOffRight -= *mrShape.getTextBody()->getTextProperties().moTextOffLeft;
+ const OUString sXValue = rAttribs.getString( XML_x ).get();
+ const OUString sYValue = rAttribs.getString( XML_y ).get();
+ if( !sXValue.isEmpty() && nType == XML_rect )
+ mrShape.getTextBody()->getTextProperties().moTextOffLeft = GetCoordinate( sXValue.toInt32() - mrShape.getPosition().X );
+ if( !sYValue.isEmpty() )
+ mrShape.getTextBody()->getTextProperties().moTextOffUpper = GetCoordinate( sYValue.toInt32() - mrShape.getPosition().Y );
}
- if( !sYValue.isEmpty() )
+ break;
+ case A_TOKEN( ext ):
{
- mrShape.getTextBody()->getTextProperties().moTextOffLower = GetCoordinate(mrShape.getSize().Height - sYValue.toInt32());
- if( mrShape.getTextBody()->getTextProperties().moTextOffUpper )
- *mrShape.getTextBody()->getTextProperties().moTextOffLower -= *mrShape.getTextBody()->getTextProperties().moTextOffUpper;
+ const OUString sXValue = rAttribs.getString( XML_cx ).get();
+ const OUString sYValue = rAttribs.getString( XML_cy ).get();
+ if( !sXValue.isEmpty() && nType == XML_rect )
+ {
+ mrShape.getTextBody()->getTextProperties().moTextOffRight = GetCoordinate(mrShape.getSize().Width - sXValue.toInt32());
+ if( mrShape.getTextBody()->getTextProperties().moTextOffLeft )
+ *mrShape.getTextBody()->getTextProperties().moTextOffRight -= *mrShape.getTextBody()->getTextProperties().moTextOffLeft;
+ }
+ if( !sYValue.isEmpty() )
+ {
+ mrShape.getTextBody()->getTextProperties().moTextOffLower = GetCoordinate(mrShape.getSize().Height - sYValue.toInt32());
+ if( mrShape.getTextBody()->getTextProperties().moTextOffUpper )
+ *mrShape.getTextBody()->getTextProperties().moTextOffLower -= *mrShape.getTextBody()->getTextProperties().moTextOffUpper;
+
+ }
}
- }
- break;
+ break;
+ }
}
return 0;
}