summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorPranam Lashkari <lpranam@collabora.com>2020-05-26 10:17:40 +0530
committerPranam Lashkari <lpranam@collabora.com>2020-06-25 08:10:07 +0200
commitebdb73c17d884c463c3c1279678a36c2668fd8c2 (patch)
tree99ac32b9ac8cbd25dbb1aaab3f5c817b4f2260ee /sd
parent3ba009e0c2b7800305103f8ec86df58625fed955 (diff)
LOK: slide sorter: update the model on selecting multiple slides
Change-Id: I17bdd8e39c960a81d4bef2a8cffd42103adb5341 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94715 Tested-by: Jenkins Reviewed-by: Pranam Lashkari <lpranam@collabora.com>
Diffstat (limited to 'sd')
-rw-r--r--sd/source/ui/view/drviews1.cxx29
1 files changed, 25 insertions, 4 deletions
diff --git a/sd/source/ui/view/drviews1.cxx b/sd/source/ui/view/drviews1.cxx
index c99163f62817..ab2339220574 100644
--- a/sd/source/ui/view/drviews1.cxx
+++ b/sd/source/ui/view/drviews1.cxx
@@ -758,15 +758,36 @@ bool DrawViewShell::ActivateObject(SdrOle2Obj* pObj, long nVerb)
bool DrawViewShell::SelectPage(sal_uInt16 nPage, sal_uInt16 nSelect)
{
SdPage* pPage = GetDoc()->GetSdPage(nPage, PageKind::Standard);
+
+ //page selector marks pages to selected in view
+ auto &pageSelector = sd::slidesorter::SlideSorterViewShell::GetSlideSorter(GetViewShellBase())->GetSlideSorter().GetController().GetPageSelector();
+
if (pPage)
{
if (nSelect == 0)
- pPage->SetSelected(false); // Deselect.
+ {
+ GetDoc()->SetSelected(pPage, false); // Deselect.
+ pageSelector.DeselectPage(nPage);
+ }
else if (nSelect == 1)
- pPage->SetSelected(true); // Select.
+ {
+ GetDoc()->SetSelected(pPage, true); // Select.
+ pageSelector.SelectPage(nPage);
+ }
else
- pPage->SetSelected(!pPage->IsSelected()); // Toggle.
-
+ {
+ // Toggle.
+ if (pPage->IsSelected())
+ {
+ GetDoc()->SetSelected(pPage, false);
+ pageSelector.DeselectPage(nPage);
+ }
+ else
+ {
+ GetDoc()->SetSelected(pPage, true);
+ pageSelector.SelectPage(nPage);
+ }
+ }
return true;
}