From f187550e052ac659766dc8dc4ef574714e8ac46b Mon Sep 17 00:00:00 2001 From: Tamás Zolnai Date: Tue, 26 Nov 2019 15:23:40 +0100 Subject: tdf#128985: ODP: Style text directions revert to RTL on save and re-open MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit First we need to check duplicate writing modes and then ignore the defult LR_TB writing mode. Change-Id: I166141abd6286fc48c095ef92751e420fb197b3e Reviewed-on: https://gerrit.libreoffice.org/83785 Reviewed-by: Tamás Zolnai Tested-by: Tamás Zolnai (cherry picked from commit 6f62a5c4ee2c1b7654c7fcaa618fb495e0d32f0a) Reviewed-on: https://gerrit.libreoffice.org/83896 Tested-by: Jenkins Reviewed-by: Xisco Faulí --- xmloff/source/draw/sdpropls.cxx | 46 ++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 24 deletions(-) (limited to 'xmloff/source') diff --git a/xmloff/source/draw/sdpropls.cxx b/xmloff/source/draw/sdpropls.cxx index de6a5e4655d5..6a59ac6967e2 100644 --- a/xmloff/source/draw/sdpropls.cxx +++ b/xmloff/source/draw/sdpropls.cxx @@ -1364,35 +1364,13 @@ void XMLShapeExportPropertyMapper::ContextFilter( } break; case CTF_WRITINGMODE: - { - pShapeWritingMode = property; - text::WritingMode eWritingMode; - if( property->maValue >>= eWritingMode ) - { - if( text::WritingMode_LR_TB == eWritingMode ) - { - property->mnIndex = -1; - pShapeWritingMode = nullptr; - } - } - } + pShapeWritingMode = property; break; case CTF_CONTROLWRITINGMODE: pControlWritingMode = property; break; case CTF_TEXTWRITINGMODE: - { - pTextWritingMode = property; - sal_Int32 eWritingMode; - if (property->maValue >>= eWritingMode) - { - if (text::WritingMode2::LR_TB == eWritingMode) - { - property->mnIndex = -1; - pTextWritingMode = nullptr; - } - } - } + pTextWritingMode = property; break; case CTF_REPEAT_OFFSET_X: pRepeatOffsetX = property; @@ -1485,10 +1463,30 @@ void XMLShapeExportPropertyMapper::ContextFilter( pTextWritingMode->mnIndex = -1; if( pControlWritingMode ) pControlWritingMode->mnIndex = -1; + + text::WritingMode eWritingMode; + if( pShapeWritingMode->maValue >>= eWritingMode ) + { + if( text::WritingMode_LR_TB == eWritingMode ) + { + pShapeWritingMode->mnIndex = -1; + pShapeWritingMode = nullptr; + } + } } else if( pTextWritingMode && pControlWritingMode ) { pControlWritingMode->mnIndex = -1; + + sal_Int32 eWritingMode; + if (pTextWritingMode->maValue >>= eWritingMode) + { + if (text::WritingMode2::LR_TB == eWritingMode) + { + pTextWritingMode->mnIndex = -1; + pTextWritingMode = nullptr; + } + } } // do not export visual area for internal ole objects -- cgit