include/oox/vml/vmlshape.hxx | 4 ++-- oox/source/vml/vmlshape.cxx | 10 ++++------ sc/source/filter/oox/commentsbuffer.cxx | 7 ++++++- 3 files changed, 12 insertions(+), 9 deletions(-)
New commits: commit 5aeb15e95d26ce6de28eb5f5933324828d553f41 Author: Caolán McNamara <[email protected]> AuthorDate: Fri Aug 11 10:46:53 2023 +0100 Commit: Caolán McNamara <[email protected]> CommitDate: Fri Aug 11 18:12:47 2023 +0200 refactor to return the position to be set by the caller instead no change in behavior intended Change-Id: I32043bdf1d29521d8503df315fa786236e272f7d Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155580 Tested-by: Caolán McNamara <[email protected]> Reviewed-by: Caolán McNamara <[email protected]> diff --git a/include/oox/vml/vmlshape.hxx b/include/oox/vml/vmlshape.hxx index d46c23282324..8c63d8cbd26c 100644 --- a/include/oox/vml/vmlshape.hxx +++ b/include/oox/vml/vmlshape.hxx @@ -267,8 +267,8 @@ public: const css::uno::Reference< css::drawing::XShapes >& rxShapes, const ShapeParentAnchor* pParentAnchor = nullptr ) const; - /** Converts position and formatting into the passed existing XShape. */ - void convertFormatting( + /** Converts formatting into the passed existing XShape and returns position. */ + css::awt::Rectangle convertFormatting( const css::uno::Reference< css::drawing::XShape >& rxShape ) const; void setContainer(ShapeContainer* pContainer); diff --git a/oox/source/vml/vmlshape.cxx b/oox/source/vml/vmlshape.cxx index 607ddf5354b4..328abeba7875 100644 --- a/oox/source/vml/vmlshape.cxx +++ b/oox/source/vml/vmlshape.cxx @@ -484,10 +484,10 @@ Reference< XShape > ShapeBase::convertAndInsert( const Reference< XShapes >& rxS return xShape; } -void ShapeBase::convertFormatting( const Reference< XShape >& rxShape ) const +awt::Rectangle ShapeBase::convertFormatting( const Reference< XShape >& rxShape ) const { if( !rxShape.is() ) - return; + return awt::Rectangle(); /* Calculate shape rectangle. Applications may do something special according to some imported shape client data (e.g. Excel cell anchor). */ @@ -495,11 +495,9 @@ void ShapeBase::convertFormatting( const Reference< XShape >& rxShape ) const // convert the shape, if the calculated rectangle is not empty if( (aShapeRect.Width > 0) || (aShapeRect.Height > 0) ) - { - rxShape->setPosition( awt::Point( aShapeRect.X, aShapeRect.Y ) ); - rxShape->setSize( awt::Size( aShapeRect.Width, aShapeRect.Height ) ); convertShapeProperties( rxShape ); - } + + return aShapeRect; } void ShapeBase::setContainer(ShapeContainer* pContainer) { mpContainer = pContainer; } diff --git a/sc/source/filter/oox/commentsbuffer.cxx b/sc/source/filter/oox/commentsbuffer.cxx index 05deae3ee876..555ddad3a924 100644 --- a/sc/source/filter/oox/commentsbuffer.cxx +++ b/sc/source/filter/oox/commentsbuffer.cxx @@ -183,7 +183,12 @@ void Comment::finalizeImport() if( const ::oox::vml::ShapeBase* pVmlNoteShape = getVmlDrawing().getNoteShape( maModel.maRange.aStart ) ) { // position and formatting - pVmlNoteShape->convertFormatting( xAnnoShape ); + css::awt::Rectangle aShapeRect = pVmlNoteShape->convertFormatting(xAnnoShape); + if (aShapeRect.Width > 0 || aShapeRect.Height > 0) + { + xAnnoShape->setPosition(css::awt::Point(aShapeRect.X, aShapeRect.Y)); + xAnnoShape->setSize(css::awt::Size(aShapeRect.Width, aShapeRect.Height)); + } // visibility bVisible = pVmlNoteShape->getTypeModel().mbVisible;
