summaryrefslogtreecommitdiff
path: root/oox
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>2023-08-18 13:42:23 +0200
committerSamuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>2023-08-18 22:15:59 +0200
commit0367a168cd01f4a2c16101726714f696ba023a6f (patch)
tree7e86e704bf3af86dfe1261eaaa8d99b40b6fbe78 /oox
parentf09e2e1d92a7d7f99b05c739952eed876f741f75 (diff)
tdf#151134 Always write inset properties when exporting placeholder shapes
The default value works for text boxes, but not for these special presentation placeholder objects - here the values need to be written explicitly. Change-Id: Id606bd5e6b63dee2fd3b385435ce13ecec63b5f1 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155838 Tested-by: Jenkins Reviewed-by: Samuel Mehrbrodt <samuel.mehrbrodt@allotropia.de>
Diffstat (limited to 'oox')
-rw-r--r--oox/source/export/drawingml.cxx15
1 files changed, 11 insertions, 4 deletions
diff --git a/oox/source/export/drawingml.cxx b/oox/source/export/drawingml.cxx
index 351c1b7cf265..6b464cf774ba 100644
--- a/oox/source/export/drawingml.cxx
+++ b/oox/source/export/drawingml.cxx
@@ -4010,6 +4010,9 @@ void DrawingML::WriteText(const Reference<XInterface>& rXIface, bool bBodyPr, bo
sVertOverflow = "clip";
}
+ // tdf#151134 When writing placeholder shapes, inset must be explicitly specified
+ bool bRequireInset = GetProperty(rXPropSet, "IsPresentationObject") && rXPropSet->getPropertyValue("IsPresentationObject").get<bool>();
+
mpFS->startElementNS( (nXmlNamespace ? nXmlNamespace : XML_a), XML_bodyPr,
XML_numCol, sax_fastparser::UseIf(OString::number(nCols), nCols > 0),
XML_spcCol, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nColSpacing)), nCols > 0 && nColSpacing >= 0),
@@ -4017,10 +4020,14 @@ void DrawingML::WriteText(const Reference<XInterface>& rXIface, bool bBodyPr, bo
XML_horzOverflow, sHorzOverflow,
XML_vertOverflow, sVertOverflow,
XML_fromWordArt, sax_fastparser::UseIf("1", bFromWordArt),
- XML_lIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nLeft)), nLeft != constDefaultLeftRightInset),
- XML_rIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nRight)), nRight != constDefaultLeftRightInset),
- XML_tIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nTop)), nTop != constDefaultTopBottomInset),
- XML_bIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nBottom)), nBottom != constDefaultTopBottomInset),
+ XML_lIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nLeft)),
+ bRequireInset || nLeft != constDefaultLeftRightInset),
+ XML_rIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nRight)),
+ bRequireInset || nRight != constDefaultLeftRightInset),
+ XML_tIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nTop)),
+ bRequireInset || nTop != constDefaultTopBottomInset),
+ XML_bIns, sax_fastparser::UseIf(OString::number(oox::drawingml::convertHmmToEmu(nBottom)),
+ bRequireInset || nBottom != constDefaultTopBottomInset),
XML_anchor, sAnchor,
XML_anchorCtr, sax_fastparser::UseIf("1", bAnchorCtr),
XML_vert, sWritingMode,