summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2020-07-03 16:25:03 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2020-07-04 00:12:32 +0200
commit49124a6c5e14562110ea9a9318d1a93b14f9fa5c (patch)
tree0efb3891211b00cdcf2e8ef2736f6baf78043a26
parenta5073875fe551790a314b402ff209545050c17da (diff)
Marking documents modified simply on entry to an edit box created a problem, when using search in a read-only Online session made the document modified, and then auto-save failed, displaying a warning: Document cannot be saved. Check your permissions or contact the storage server administrator. The original problem, that 481e686a66e550229ec0b600a785452f0d753342 fixed, was that entering a box in Impress in browser, typing, then pressing Save without exiting the box did not save the edits. Yet, the same sequence works outside of Online. In that case, the doc is marked modified in SdrObjEditView::KeyInput, which obviously is not called from Online, where SdrObjEditView::Command is called instead with CommandEventId::ExtTextInput. So just make sure that we mark the document modified also in this case, making sure that only the actual edits set the "modified" flag. This reverts 481e686a66e550229ec0b600a785452f0d753342. Change-Id: Ib05bc0492616a306dd328bcb8f2e1c9d7e7aa191 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97870 Tested-by: Mike Kaganski <mike.kaganski@collabora.com> Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
-rw-r--r--sd/source/ui/func/futext.cxx3
-rw-r--r--svx/source/svdraw/svdedxv.cxx7
2 files changed, 7 insertions, 3 deletions
diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx
index ca22efc08780..358805436097 100644
--- a/sd/source/ui/func/futext.cxx
+++ b/sd/source/ui/func/futext.cxx
@@ -64,7 +64,6 @@
#include <DrawDocShell.hxx>
#include <strings.hrc>
#include <pres.hxx>
-#include <comphelper/lok.hxx>
using namespace ::com::sun::star;
using namespace ::com::sun::star::uno;
@@ -196,8 +195,6 @@ void FuText::DoExecute( SfxRequest& )
SdrViewEvent aVEvt;
mpView->PickAnything(aMEvt, SdrMouseEventKind::BUTTONDOWN, aVEvt);
mpView->MarkObj(aVEvt.pRootObj, pPV);
- if (comphelper::LibreOfficeKit::isActive() && mpViewShell->GetDocSh())
- mpViewShell->GetDocSh()->SetModified();
mxTextObj.reset( dynamic_cast< SdrTextObj* >( aVEvt.pObj ) );
}
diff --git a/svx/source/svdraw/svdedxv.cxx b/svx/source/svdraw/svdedxv.cxx
index 6dddd270005c..9551cf985b03 100644
--- a/svx/source/svdraw/svdedxv.cxx
+++ b/svx/source/svdraw/svdedxv.cxx
@@ -1980,6 +1980,13 @@ bool SdrObjEditView::Command(const CommandEvent& rCEvt, vcl::Window* pWin)
else
{
pTextEditOutlinerView->Command(rCEvt);
+ if (mpModel && comphelper::LibreOfficeKit::isActive())
+ {
+ // It could execute CommandEventId::ExtTextInput, while SdrObjEditView::KeyInput
+ // isn't called
+ if (pTextEditOutliner && pTextEditOutliner->IsModified())
+ mpModel->SetChanged();
+ }
return true;
}
}