sd/source/core/drawdoc2.cxx |   14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

New commits:
commit e44dbe1e03cc0d98a53740d3666749b39f4236e6
Author:     Mohit Marathe <[email protected]>
AuthorDate: Mon Dec 15 12:15:20 2025 +0530
Commit:     Mohit Marathe <[email protected]>
CommitDate: Tue Jan 13 08:56:36 2026 +0100

    sd: update connectors when pages are shuffled using .uno:ReshufflePages
    
    Signed-off-by: Mohit Marathe <[email protected]>
    Change-Id: I1dd9d1c92298c009522d8e1c87a4d2f6918460ab
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195624
    Reviewed-by: Michael Stahl <[email protected]>
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196718

diff --git a/sd/source/core/drawdoc2.cxx b/sd/source/core/drawdoc2.cxx
index 19e2b492d8e3..1a2e2b7d71ed 100644
--- a/sd/source/core/drawdoc2.cxx
+++ b/sd/source/core/drawdoc2.cxx
@@ -1617,6 +1617,9 @@ void SdDrawDocument::ReshufflePages()
         MovePage(nCurrentPageNum + 1, nTargetPageNum + 1); // Notes page
     }
     mbSkipCanvasPreviewUpdates = false;
+
+    // update connectors
+    connectPagePreviews();
 }
 
 sal_uInt16 SdDrawDocument::GetOrInsertCanvasPage()
commit fa96c30e74930583c8d0664f3820c788ef697f0c
Author:     Mohit Marathe <[email protected]>
AuthorDate: Fri Dec 12 13:19:47 2025 +0530
Commit:     Mohit Marathe <[email protected]>
CommitDate: Tue Jan 13 08:56:24 2026 +0100

    sd: update connectors when a page is inserted or deleted
    
    Signed-off-by: Mohit Marathe <[email protected]>
    Change-Id: Ic70e27ecadfe572f1f1ee267e88594f6dd5580b1
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/195551
    Tested-by: Jenkins CollaboraOffice <[email protected]>
    Reviewed-by: Michael Stahl <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/196717

diff --git a/sd/source/core/drawdoc2.cxx b/sd/source/core/drawdoc2.cxx
index 8fc50fd8c251..19e2b492d8e3 100644
--- a/sd/source/core/drawdoc2.cxx
+++ b/sd/source/core/drawdoc2.cxx
@@ -1763,6 +1763,7 @@ void SdDrawDocument::updatePagePreviewsGrid(SdPage* pPage)
 
         mpCanvasPage->CreatePresObj(PresObjKind::PagePreview, true, 
::tools::Rectangle(Point(nX,nY), Size(nPreviewWidth, nPreviewHeight)), 
OUString(), nPageNum);
     }
+    connectPagePreviews();
 }
 
 void SdDrawDocument::connectPagePreviews()
@@ -1775,7 +1776,12 @@ void SdDrawDocument::connectPagePreviews()
     SdrObjListIter aIter(pObjList, SdrIterMode::Flat);
     for (SdrObject* pObj = aIter.Next(); pObj; pObj = aIter.Next())
     {
-        if (pObj->GetObjIdentifier() == SdrObjKind::Page)
+        //remove the existing connectors
+        if (pObj->GetObjIdentifier() == SdrObjKind::Edge)
+        {
+            pObjList->NbcRemoveObject(pObj->GetOrdNum());
+        }
+        else if (pObj->GetObjIdentifier() == SdrObjKind::Page)
         {
             SdrPageObj* pPageObj = static_cast<SdrPageObj*>(pObj);
             SdPage* pPage = 
static_cast<SdPage*>(pPageObj->GetReferencedPage());
@@ -1789,6 +1795,9 @@ void SdDrawDocument::connectPagePreviews()
         SdrPageObj* pPageObj1 = aPageOrder[i];
         SdrPageObj* pPageObj2 = aPageOrder[i + 1];
 
+        if (!pPageObj1 || !pPageObj2)
+            continue;
+
         ::tools::Rectangle aRect1 = pPageObj1->GetSnapRect();
         ::tools::Rectangle aRect2 = pPageObj2->GetSnapRect();
 

Reply via email to