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).

(cherry picked from commit 99f9d663a26da00bebd8595f1e0819ebc6c3e4f0)

Change-Id: I88b6f0287482ad1ee498b0bbda8e19d015649879
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/173853
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
This commit is contained in:
Tomaž Vajngerl 2024-07-23 12:16:16 +02:00 committed by Miklos Vajna
parent 0b5d753b50
commit cdfa19a797

View File

@ -620,6 +620,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());