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

Reply via email to