oox/source/ppt/pptshapegroupcontext.cxx | 2 +- sd/qa/unit/data/pptx/tdf158512.pptx |binary sd/qa/unit/import-tests2.cxx | 13 +++++++++++++ 3 files changed, 14 insertions(+), 1 deletion(-)
New commits: commit 6687177f38f67c70789efb7a766c067dc56b8c33 Author: Vasily Melenchuk <vasily.melenc...@cib.de> AuthorDate: Thu Apr 11 11:10:37 2024 +0300 Commit: Thorsten Behrens <thorsten.behr...@allotropia.de> CommitDate: Tue Dec 10 08:48:29 2024 +0100 tdf#158512: PPTX import: reset useBgFill flag when it is unused Even if current fill is not "use background" we should reset useBgFill explicitly, since this value could be set from master slide and was nested in current shape. It is somewhat confusing to have fillStyle as none and using slide background at the same time. So better to clean it explicitly. Change-Id: I0d817dc295785be7a6cb8f884d5023d316cd2ebf Reviewed-on: https://gerrit.libreoffice.org/c/core/+/165994 Reviewed-by: Gabor Kelemen <gabor.kelemen.ext...@allotropia.de> Tested-by: Jenkins Tested-by: Gabor Kelemen <gabor.kelemen.ext...@allotropia.de> (cherry picked from commit 6c9055aaac77323b9446050dafb8dc8d492a6bd6) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/178153 Reviewed-by: Thorsten Behrens <thorsten.behr...@allotropia.de> Tested-by: allotropia jenkins <jenk...@allotropia.de> diff --git a/oox/source/ppt/pptshapegroupcontext.cxx b/oox/source/ppt/pptshapegroupcontext.cxx index 26caf62ef67e..66b18c056872 100644 --- a/oox/source/ppt/pptshapegroupcontext.cxx +++ b/oox/source/ppt/pptshapegroupcontext.cxx @@ -108,10 +108,10 @@ ContextHandlerRef PPTShapeGroupContext::onCreateContext( sal_Int32 aElementToken { auto pShape = std::make_shared<PPTShape>( meShapeLocation, u"com.sun.star.drawing.CustomShape"_ustr ); bool bUseBgFill = rAttribs.getBool(XML_useBgFill, false); + pShape->getFillProperties().moUseBgFill = bUseBgFill; if (bUseBgFill) { pShape->getFillProperties().moFillType = XML_noFill; - pShape->getFillProperties().moUseBgFill = true; } pShape->setModelId(rAttribs.getStringDefaulted( XML_modelId )); return new PPTShapeContext( *this, mpSlidePersistPtr, mpGroupShapePtr, pShape ); diff --git a/sd/qa/unit/data/pptx/tdf158512.pptx b/sd/qa/unit/data/pptx/tdf158512.pptx new file mode 100644 index 000000000000..96494ddf656a Binary files /dev/null and b/sd/qa/unit/data/pptx/tdf158512.pptx differ diff --git a/sd/qa/unit/import-tests2.cxx b/sd/qa/unit/import-tests2.cxx index 9ee8c12bbea8..ec20d0c52946 100644 --- a/sd/qa/unit/import-tests2.cxx +++ b/sd/qa/unit/import-tests2.cxx @@ -2133,6 +2133,19 @@ CPPUNIT_TEST_FIXTURE(SdImportTest2, testTdf161430) CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_NONE, eXFS); } +CPPUNIT_TEST_FIXTURE(SdImportTest2, tdf158512) +{ + // First shape on first slide should have no fill to avoid hiding background + createSdImpressDoc("pptx/tdf158512.pptx"); + + const SdrPage* pPage = GetPage(1); + CPPUNIT_ASSERT_EQUAL(size_t(2), pPage->GetObjCount()); + CPPUNIT_ASSERT_EQUAL(drawing::FillStyle_NONE, + pPage->GetObj(0)->GetMergedItem(XATTR_FILLSTYLE).GetValue()); + CPPUNIT_ASSERT_EQUAL(false, + pPage->GetObj(0)->GetMergedItem(XATTR_FILLUSESLIDEBACKGROUND).GetValue()); +} + CPPUNIT_PLUGIN_IMPLEMENT(); /* vim:set shiftwidth=4 softtabstop=4 expandtab: */