diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2024-11-15 13:20:06 +0100 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2024-11-15 15:47:15 +0100 |
commit | 981ce9b3a95d68bc88cf8c9b6fe5c9e6f17a75ef (patch) | |
tree | 5857063de894024975d172e23dba03ca4f5b9b46 /svx/source | |
parent | 2fbb7e047245922a6e159ee88b6207ec3fbf67ec (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.cxx | 7 | ||||
-rw-r--r-- | svx/source/svdraw/svdpntv.cxx | 1 |
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) { |