summaryrefslogtreecommitdiff
path: root/svx/source
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@collabora.com>2024-11-15 13:20:06 +0100
committerMiklos Vajna <vmiklos@collabora.com>2024-11-15 15:47:15 +0100
commit981ce9b3a95d68bc88cf8c9b6fe5c9e6f17a75ef (patch)
tree5857063de894024975d172e23dba03ca4f5b9b46 /svx/source
parent2fbb7e047245922a6e159ee88b6207ec3fbf67ec (diff)
render master and slide content separately (drawinglayer render)
This renders master and the main slide as 2 separate layers, which is useful because in a huge slideshow we can reuse the master slide and only render the rest of the slide, which should be more compact in size as the master slide is the one that usually contains the (complex) background. Change-Id: I5e86d718b7ab3b03bd0b6146ce4df218a4dd72d4 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/176622 Tested-by: Jenkins Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Diffstat (limited to 'svx/source')
-rw-r--r--svx/source/sdr/contact/viewobjectcontactofmasterpagedescriptor.cxx7
-rw-r--r--svx/source/svdraw/svdpntv.cxx1
2 files changed, 6 insertions, 2 deletions
diff --git a/svx/source/sdr/contact/viewobjectcontactofmasterpagedescriptor.cxx b/svx/source/sdr/contact/viewobjectcontactofmasterpagedescriptor.cxx
index baa039b1bb0f..2cd4b64c2fe8 100644
--- a/svx/source/sdr/contact/viewobjectcontactofmasterpagedescriptor.cxx
+++ b/svx/source/sdr/contact/viewobjectcontactofmasterpagedescriptor.cxx
@@ -23,6 +23,8 @@
#include <svx/sdr/contact/displayinfo.hxx>
#include <svx/sdr/contact/objectcontact.hxx>
#include <svx/svdpage.hxx>
+#include <svx/svdpagv.hxx>
+#include <svx/svdview.hxx>
#include <drawinglayer/primitive2d/maskprimitive2d.hxx>
#include <basegfx/polygon/b2dpolygontools.hxx>
#include <basegfx/polygon/b2dpolygon.hxx>
@@ -78,12 +80,13 @@ namespace sdr::contact
aPreprocessedLayers &= rDescriptor.GetVisibleLayers();
rDisplayInfo.SetProcessLayers(aPreprocessedLayers);
rDisplayInfo.SetSubContentActive(true);
-
+ const SdrPageView* pSdrPageView = GetObjectContact().TryToGetSdrPageView();
+ bool bHideBackground = pSdrPageView ? pSdrPageView->GetView().getHideBackground() : false;
// check layer visibility (traditionally was member of layer 1)
if(aPreprocessedLayers.IsSet(SdrLayerID(1)))
{
// hide PageBackground for special DrawModes; historical reasons
- if(!GetObjectContact().isDrawModeGray() && !GetObjectContact().isDrawModeHighContrast())
+ if (!bHideBackground && !GetObjectContact().isDrawModeGray() && !GetObjectContact().isDrawModeHighContrast())
{
// if visible, create the default background primitive sequence
static_cast< ViewContactOfMasterPageDescriptor& >(GetViewContact()).getViewIndependentPrimitive2DContainer(rVisitor);
diff --git a/svx/source/svdraw/svdpntv.cxx b/svx/source/svdraw/svdpntv.cxx
index 5874acb1c63d..de1e42a5e6cb 100644
--- a/svx/source/svdraw/svdpntv.cxx
+++ b/svx/source/svdraw/svdpntv.cxx
@@ -165,6 +165,7 @@ SdrPaintView::SdrPaintView(SdrModel& rSdrModel, OutputDevice* pOut)
, mbHideChart(false)
, mbHideDraw(false)
, mbHideFormControl(false)
+ , mbHideBackground(false)
, mbPaintTextEdit(true)
, maGridColor(COL_BLACK)
{