summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPranam Lashkari <lpranam@collabora.com>2020-05-26 10:17:40 +0530
committerAndras Timar <andras.timar@collabora.com>2020-06-10 12:30:55 +0200
commit95eb7561d7dbbfcb36460115712992172b93c13b (patch)
treee9368e50e84b5373bb57766d343a3471ac24155a
parent8fba80db6996fef9e4bf17e0c5d1ec69214ca8bf (diff)
LOK: slide sorter: update the model on selecting multiple slides
Change-Id: I17bdd8e39c960a81d4bef2a8cffd42103adb5341 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/94713 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Andras Timar <andras.timar@collabora.com>
-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 cf8f73d21819..d853f8edb4ac 100644
--- a/sd/source/ui/view/drviews1.cxx
+++ b/sd/source/ui/view/drviews1.cxx
@@ -776,15 +776,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;
}