Blame SOURCES/0001-only-set-cur.-page-once-when-removing-mult.-pages.patch

a9add1
From 3643ea7b660a1f8263d05ffa9be47e8180fd2504 Mon Sep 17 00:00:00 2001
a9add1
From: David Tardon <dtardon@redhat.com>
a9add1
Date: Thu, 5 May 2016 17:47:03 +0200
a9add1
Subject: [PATCH] only set cur. page once when removing mult. pages
a9add1
a9add1
Change-Id: Id9da135a91d9591eed04fb25d2891169c45ecaaf
a9add1
---
a9add1
 .../ui/slidesorter/controller/SlsSelectionManager.cxx    | 16 ++++++++++++++++
a9add1
 1 file changed, 16 insertions(+)
a9add1
a9add1
diff --git a/sd/source/ui/slidesorter/controller/SlsSelectionManager.cxx b/sd/source/ui/slidesorter/controller/SlsSelectionManager.cxx
a9add1
index 0768a1e..1e913b3 100644
a9add1
--- a/sd/source/ui/slidesorter/controller/SlsSelectionManager.cxx
a9add1
+++ b/sd/source/ui/slidesorter/controller/SlsSelectionManager.cxx
a9add1
@@ -36,6 +36,9 @@
a9add1
 #include "view/SlideSorterView.hxx"
a9add1
 #include "view/SlsLayouter.hxx"
a9add1
 #include "drawdoc.hxx"
a9add1
+#include "drawview.hxx"
a9add1
+#include "DrawViewShell.hxx"
a9add1
+#include "ViewShellBase.hxx"
a9add1
 #include "Window.hxx"
a9add1
 #include <svx/svxids.hrc>
a9add1
 #include <com/sun/star/drawing/XMasterPagesSupplier.hpp>
a9add1
@@ -117,6 +120,13 @@ void SelectionManager::DeleteSelectedPages (const bool bSelectFollowingPage)
a9add1
     else
a9add1
         --nNewCurrentSlide;
a9add1
 
a9add1
+    const auto pViewShell = mrSlideSorter.GetViewShell();
a9add1
+    const auto pDrawViewShell = pViewShell ? dynamic_cast<sd::DrawViewShell*>(pViewShell->GetViewShellBase().GetMainViewShell().get()) : nullptr;
a9add1
+    const auto pDrawView = pDrawViewShell ? dynamic_cast<sd::DrawView*>(pDrawViewShell->GetDrawView()) : nullptr;
a9add1
+
a9add1
+    if (pDrawView)
a9add1
+        pDrawView->BlockPageOrderChangedHint(true);
a9add1
+
a9add1
     // The actual deletion of the selected pages is done in one of two
a9add1
     // helper functions.  They are specialized for normal respectively for
a9add1
     // master pages.
a9add1
@@ -129,6 +139,12 @@ void SelectionManager::DeleteSelectedPages (const bool bSelectFollowingPage)
a9add1
 
a9add1
     mrController.HandleModelChange();
a9add1
     aLock.Release();
a9add1
+    if (pDrawView)
a9add1
+    {
a9add1
+        assert(pDrawViewShell);
a9add1
+        pDrawView->BlockPageOrderChangedHint(false);
a9add1
+        pDrawViewShell->ResetActualPage();
a9add1
+    }
a9add1
 
a9add1
     // Show focus and move it to next valid location.
a9add1
     if (bIsFocusShowing)
a9add1
-- 
a9add1
2.7.4
a9add1