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

Reply via email to