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();
