sd/inc/drawdoc.hxx | 2 ++ sd/source/core/drawdoc2.cxx | 12 +++++++++++- 2 files changed, 13 insertions(+), 1 deletion(-)
New commits: commit 8de6df81358e5b5afde60402116d87c8097035c9 Author: Mohit Marathe <[email protected]> AuthorDate: Wed Nov 19 11:31:19 2025 +0530 Commit: Michael Stahl <[email protected]> CommitDate: Mon Jan 12 19:27:43 2026 +0100 sd: remove previous page's background from the canvas page Signed-off-by: Mohit Marathe <[email protected]> Change-Id: I1d4e97281953a5df0b3c3a78cf8292e040f7f509 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194183 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Michael Stahl <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196804 Tested-by: Jenkins diff --git a/sd/source/core/drawdoc2.cxx b/sd/source/core/drawdoc2.cxx index eac887aaa650..63f9634fc2a6 100644 --- a/sd/source/core/drawdoc2.cxx +++ b/sd/source/core/drawdoc2.cxx @@ -1558,7 +1558,7 @@ sal_uInt16 SdDrawDocument::GetOrInsertCanvasPage() sal_uInt16 nCanvasPageNum = CreatePage(pLastStandardPage, PageKind::Standard, u"Canvas Page"_ustr, u"Canvas notes page"_ustr, AutoLayout::AUTOLAYOUT_NONE, AutoLayout::AUTOLAYOUT_NONE, - false, true, pLastStandardPage->GetPageNum() + 2); + false, false, pLastStandardPage->GetPageNum() + 2); SdPage* pCanvasPage = GetSdPage(nCanvasPageNum, PageKind::Standard); if (!pCanvasPage) @@ -1573,6 +1573,12 @@ sal_uInt16 SdDrawDocument::GetOrInsertCanvasPage() SdPage* pMasterCanvas = static_cast<SdPage*>(&pCanvasPage->TRG_GetMasterPage()); pMasterCanvas->SetCanvasMasterPage(); + // Remove all objects inherited from previous page's master page + while (pMasterCanvas->GetObjCount() > 0) + { + pMasterCanvas->NbcRemoveObject(0); + } + populatePagePreviewsGrid(); return pCanvasPage->GetPageNum() / 2; commit 04873e4b3c74f84a784e59393f1da5f854ac6787 Author: Mohit Marathe <[email protected]> AuthorDate: Fri Nov 14 18:22:50 2025 +0530 Commit: Michael Stahl <[email protected]> CommitDate: Mon Jan 12 19:27:35 2026 +0100 sd: don't update the previews while re-ordering pages Signed-off-by: Mohit Marathe <[email protected]> Change-Id: Ide0f7672076e8ed5eb7f9cdaee1278c869f51e8b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/194025 Tested-by: Jenkins CollaboraOffice <[email protected]> Reviewed-by: Michael Stahl <[email protected]> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196803 Tested-by: Jenkins diff --git a/sd/inc/drawdoc.hxx b/sd/inc/drawdoc.hxx index 6481b05a34b4..f0afaa39826d 100644 --- a/sd/inc/drawdoc.hxx +++ b/sd/inc/drawdoc.hxx @@ -415,6 +415,8 @@ private: rtl::Reference<SdPage> mpCanvasPage; + bool mbSkipCanvasPreviewUpdates = false; + SAL_DLLPRIVATE virtual css::uno::Reference< css::frame::XModel > createUnoModel() override; public: diff --git a/sd/source/core/drawdoc2.cxx b/sd/source/core/drawdoc2.cxx index 623c413fe60e..eac887aaa650 100644 --- a/sd/source/core/drawdoc2.cxx +++ b/sd/source/core/drawdoc2.cxx @@ -1535,6 +1535,7 @@ void SdDrawDocument::ReshufflePages() rowStart = rowEnd; } + mbSkipCanvasPreviewUpdates = true; for (size_t i = 0; i < aPageOrder.size(); i++) { SdPage* pPage = static_cast<SdPage*>(aPageOrder[i]->GetReferencedPage()); @@ -1543,6 +1544,7 @@ void SdDrawDocument::ReshufflePages() MovePage(nCurrentPageNum, nTargetPageNum); // Standard page MovePage(nCurrentPageNum + 1, nTargetPageNum + 1); // Notes page } + mbSkipCanvasPreviewUpdates = false; } sal_uInt16 SdDrawDocument::GetOrInsertCanvasPage() @@ -1644,6 +1646,8 @@ void SdDrawDocument::populatePagePreviewsGrid() void SdDrawDocument::updatePagePreviewsGrid(SdPage* pPage) { + if (mbSkipCanvasPreviewUpdates) + return; SdrObjList* pObjList = mpCanvasPage.get(); sal_uInt16 nTotalPreviews = 0; sal_uInt16 nPageCnt = GetSdPageCount(PageKind::Standard) - 1; // do not count canvas page
