slideshow/source/engine/slide/slideimpl.cxx |   30 ++++++++++++++++++++++++++++
 1 file changed, 30 insertions(+)

New commits:
commit 99f9d663a26da00bebd8595f1e0819ebc6c3e4f0
Author:     Tomaž Vajngerl <[email protected]>
AuthorDate: Tue Jul 23 12:16:16 2024 +0200
Commit:     Tomaž Vajngerl <[email protected]>
CommitDate: Tue Jul 23 16:24:29 2024 +0200

    lok: render the whole slide temporary (with bg and master content)
    
    This changes the rendering of the main slide layer content to also
    render the master page and the background. This is needed because
    of the issue with the white background (instead of transaprent).
    
    Change-Id: I88b6f0287482ad1ee498b0bbda8e19d015649879
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/170897
    Reviewed-by: Tomaž Vajngerl <[email protected]>
    Reviewed-by: Szymon Kłos <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: vivek javiya <[email protected]>

diff --git a/slideshow/source/engine/slide/slideimpl.cxx 
b/slideshow/source/engine/slide/slideimpl.cxx
index 2c9b922ee07f..083ff31bc267 100644
--- a/slideshow/source/engine/slide/slideimpl.cxx
+++ b/slideshow/source/engine/slide/slideimpl.cxx
@@ -619,6 +619,36 @@ void LOKSlideRenderer::renderDrawPageImpl(VirtualDevice& 
rDevice)
     aJsonWriter.put("index", mnDPLayerIndex);
 
     bool bDoRendering = false;
+
+    std::shared_ptr<ShapeImporter> pMasterShapeImporter = 
std::make_shared<ShapeImporter>(mxMasterPage, mxDrawPage, mxDrawPagesSupplier, 
mrContext, 0, true);
+
+    ShapeSharedPtr const& 
rBGShape(pMasterShapeImporter->importBackgroundShape());
+    if (rBGShape)
+    {
+        bDoRendering = true;
+        mpLayerManager->addShape(rBGShape);
+    }
+
+    while (!pMasterShapeImporter->isImportDone())
+    {
+        ShapeSharedPtr const& rShape(pMasterShapeImporter->importShape());
+        if (!rShape)
+            continue;
+
+        rShape->setIsForeground(false);
+
+        uno::Reference<drawing::XShape> xShape = rShape->getXShape();
+        if (xShape.is())
+        {
+
+            mpLayerManager->addShape(rShape);
+            bDoRendering = true;
+        }
+    }
+
+    auto nCurrCount = 
static_cast<sal_Int32>(pMasterShapeImporter->getImportedShapesCount());
+    mpShapesFunctor = std::make_shared<ShapeImporter>(mxDrawPage, mxDrawPage, 
mxDrawPagesSupplier, mrContext, nCurrCount, false);
+
     while (!mpShapesFunctor->isImportDone())
     {
         ShapeSharedPtr const& rShape(mpShapesFunctor->importShape());

Reply via email to