diff options
Diffstat (limited to 'oox')
-rw-r--r-- | oox/source/drawingml/textbodyproperties.cxx | 6 | ||||
-rw-r--r-- | oox/source/drawingml/transform2dcontext.cxx | 56 |
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; } |