sd/source/core/sdpage.cxx | 5 +++-- slideshow/source/engine/shapes/shapeimporter.cxx | 20 +++++++++++++++++++- 2 files changed, 22 insertions(+), 3 deletions(-)
New commits: commit e136900e7a971385be9367a3dcaedea54d1e7207 Author: Balazs Varga <balazs.varga.ext...@allotropia.de> AuthorDate: Thu Feb 29 16:34:45 2024 +0100 Commit: Balazs Varga <balazs.varga.ext...@allotropia.de> CommitDate: Fri Mar 22 11:44:16 2024 +0100 tdf#159258 sd: fix to show objects in slideshow if they have fillstyle or linestyle. Also the shape will be appeared in print and pdf view. (Powerpoint doing the same.) TODO: the placeholder bitmap and the default text was not removed from the slideshow/print/pdf view. Change-Id: Ifadc9a692d77b60a7e3514afe8e6ea5cab0018c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/164163 Tested-by: Jenkins Reviewed-by: Balazs Varga <balazs.varga.ext...@allotropia.de> diff --git a/sd/source/core/sdpage.cxx b/sd/source/core/sdpage.cxx index 10b4f34b761f..020f1f6bbfd4 100644 --- a/sd/source/core/sdpage.cxx +++ b/sd/source/core/sdpage.cxx @@ -2802,9 +2802,10 @@ bool SdPage::checkVisibility( const bool bIsInsidePageObj(pPageView && pPageView->GetPage() != pVisualizedPage); // empty presentation objects only visible during edit mode - if( (bIsPrinting || !bEdit || bIsInsidePageObj ) && pObj->IsEmptyPresObj() ) + if( (bIsPrinting || !bEdit || bIsInsidePageObj ) && pObj->IsEmptyPresObj() && !(pObj->HasFillStyle() || pObj->HasLineStyle()) ) { - if( (pObj->GetObjInventor() != SdrInventor::Default) || ( (pObj->GetObjIdentifier() != SdrObjKind::Rectangle) && (pObj->GetObjIdentifier() != SdrObjKind::Page) ) ) + if( (pObj->GetObjInventor() != SdrInventor::Default) || ( (pObj->GetObjIdentifier() != SdrObjKind::Rectangle) && + (pObj->GetObjIdentifier() != SdrObjKind::Page) ) ) return false; } diff --git a/slideshow/source/engine/shapes/shapeimporter.cxx b/slideshow/source/engine/shapes/shapeimporter.cxx index 92162eeb60ad..7823a5588efd 100644 --- a/slideshow/source/engine/shapes/shapeimporter.cxx +++ b/slideshow/source/engine/shapes/shapeimporter.cxx @@ -346,7 +346,25 @@ bool ShapeImporter::isSkip( "IsEmptyPresentationObject") && bEmpty ) { - return true; + // check object have fill or linestyle, if have, it should be visible + drawing::FillStyle aFillStyle{ drawing::FillStyle_NONE }; + if (getPropertyValue(aFillStyle, + xPropSet, "FillStyle") && + aFillStyle != drawing::FillStyle_NONE) + { + bEmpty = false; + } + + drawing::LineStyle aLineStyle{ drawing::LineStyle_NONE }; + if (bEmpty && getPropertyValue(aLineStyle, + xPropSet, "LineStyle") && + aLineStyle != drawing::LineStyle_NONE) + { + bEmpty = false; + } + + if (bEmpty) + return true; } //skip shapes which corresponds to annotations