summaryrefslogtreecommitdiff
path: root/chart2/source/model
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2021-04-26 16:14:07 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2021-04-26 20:30:30 +0200
commiteeb2854e085fdd9f7a38d6e952a8aedf43e90323 (patch)
treec1a90e7822bcfa7a7325735273143480766bd2c5 /chart2/source/model
parent9a1c4a10b08ccb8d874a85a2cd984fd71f08c022 (diff)
tdf#141914: Allow to unset modified anyway
IsEnableSetModified returning true means kind of "treat this document as read-only". Marking object unmodified does not break this idea. Change-Id: I3efd5b3b25e2d9318702cdbf24ac5eb61aeda3ba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114666 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'chart2/source/model')
-rw-r--r--chart2/source/model/main/ChartModel_Persistence.cxx14
1 files changed, 9 insertions, 5 deletions
diff --git a/chart2/source/model/main/ChartModel_Persistence.cxx b/chart2/source/model/main/ChartModel_Persistence.cxx
index c505da695e73..b26cf6815d72 100644
--- a/chart2/source/model/main/ChartModel_Persistence.cxx
+++ b/chart2/source/model/main/ChartModel_Persistence.cxx
@@ -669,11 +669,15 @@ sal_Bool SAL_CALL ChartModel::isModified()
void SAL_CALL ChartModel::setModified( sal_Bool bModified )
{
- // tdf#77007: honor parent's IsEnableSetModified
- // Check it before LifeTimeGuard, to avoid deadlocking solar mutex and this guard
- if (auto pParentShell = SfxObjectShell::GetShellFromComponent(getParent());
- pParentShell && !pParentShell->IsEnableSetModified())
- return;
+ // tdf#141914: allow to set *unmodified* when parent does not allow to set modified
+ if (bModified)
+ {
+ // tdf#77007: honor parent's IsEnableSetModified
+ // Check it before LifeTimeGuard, to avoid deadlocking solar mutex and this guard
+ if (auto pParentShell = SfxObjectShell::GetShellFromComponent(getParent());
+ pParentShell && !pParentShell->IsEnableSetModified())
+ return;
+ }
apphelper::LifeTimeGuard aGuard(m_aLifeTimeManager);
if(!aGuard.startApiCall())//@todo ? is this a long lasting call??