diff --git a/sw/qa/extras/ooxmlimport/data/indentation.docx b/sw/qa/extras/ooxmlimport/data/indentation.docx new file mode 100755 index 000000000000..cf57aaf5417e Binary files /dev/null and b/sw/qa/extras/ooxmlimport/data/indentation.docx differ diff --git a/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx b/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx index 81ac2717b4a8..33ab0e5914ca 100644 --- a/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx +++ b/writerfilter/source/ooxml/OOXMLFastContextHandler.cxx @@ -52,6 +52,8 @@ static const sal_uInt8 cFieldStart = 0x13; static const sal_uInt8 cFieldSep = 0x14; static const sal_uInt8 cFieldEnd = 0x15; +static const sal_uInt16 paragraphProperties_sprmPFBiDi = 0x2441; + namespace writerfilter { namespace ooxml { @@ -1596,7 +1598,19 @@ void OOXMLFastContextHandlerValue::setDefaultBooleanValue() if (mpValue.get() == NULL) { - OOXMLValue::Pointer_t pValue(new OOXMLBooleanValue(true)); + // Value should not always be 'true' + //OOXMLValue::Pointer_t pValue(new OOXMLBooleanValue(true)); + bool bSet = true; + + // Paragraph properties are not always 'true' by default + // For example - RTL layout of paragraph is by default 'false' (look in this link for 'sprmPFBiDi') + // http://msdn.microsoft.com/en-us/library/dd923496%28v=office.12%29.aspx + if (getId() == paragraphProperties_sprmPFBiDi) + { + bSet = false; + } + + OOXMLValue::Pointer_t pValue(new OOXMLBooleanValue(bSet)); setValue(pValue); } }