diff options
Diffstat (limited to 'xmloff')
-rw-r--r-- | xmloff/source/draw/shapeexport.cxx | 4 | ||||
-rw-r--r-- | xmloff/source/forms/layerexport.cxx | 14 |
2 files changed, 16 insertions, 2 deletions
diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx index 92a8e0ed6d98..5eb127ac8a89 100644 --- a/xmloff/source/draw/shapeexport.cxx +++ b/xmloff/source/draw/shapeexport.cxx @@ -312,10 +312,10 @@ void XMLShapeExport::collectShapeAutoStyles(const uno::Reference< drawing::XShap { try { - // tdf#153161: it seems that the call to XTextRange::getString flushes the changes + // tdf#153161: it seems that the call to xText->getText flushes the changes // for some objects, that otherwise fail to get exported correctly. Maybe at some // point it would make sense to find a better place for more targeted flush. - xText->getString(); + xText = xText->getText(); } catch (uno::RuntimeException const&) { diff --git a/xmloff/source/forms/layerexport.cxx b/xmloff/source/forms/layerexport.cxx index a5c604ca65f0..136a10368d85 100644 --- a/xmloff/source/forms/layerexport.cxx +++ b/xmloff/source/forms/layerexport.cxx @@ -523,6 +523,20 @@ namespace xmloff Reference< XText > xControlText( _rxObject, UNO_QUERY ); if ( xControlText.is() ) { + try + { + // tdf#120397: similar to the fix of tdf#153161 where + // XTextRange::getText() --> ::GetSelection() flushes the changes + // for some Shape objects we also need to set the end cursor pos + // to the end of the form text objects, otherwise fail to get + // exported correctly. Maybe at some point it would make sense + // to find a better place for more targeted flush. + xControlText = xControlText->getText(); + } + catch (css::uno::RuntimeException const&) + { + // just in case if we would hit something here + } m_rContext.GetTextParagraphExport()->collectTextAutoStyles( xControlText ); } |