summaryrefslogtreecommitdiff
path: root/sc/source/ui/view/cellsh3.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sc/source/ui/view/cellsh3.cxx')
-rw-r--r--sc/source/ui/view/cellsh3.cxx16
1 files changed, 10 insertions, 6 deletions
diff --git a/sc/source/ui/view/cellsh3.cxx b/sc/source/ui/view/cellsh3.cxx
index 2fc6cc37a9f8..bdf1a3325d07 100644
--- a/sc/source/ui/view/cellsh3.cxx
+++ b/sc/source/ui/view/cellsh3.cxx
@@ -168,13 +168,17 @@ void ScCellShell::Execute( SfxRequest& rReq )
{
if ( pReqArgs )
{
- if (comphelper::LibreOfficeKit::isActive())
+ // In the LOK case, we want to set the document modified state
+ // right away at the start of the edit, so that the content is
+ // saved even when the user leaves the document before hitting
+ // Enter
+ // NOTE: This also means we want to set the modified state
+ // regardless of the DontCommit parameter's value.
+ if (comphelper::LibreOfficeKit::isActive() && !GetViewData()->GetDocShell()->IsModified())
{
- // Let the client know about our entry, so if they save
- // (say because the user closes the document or window,)
- // this change gets persisted (assuming DontTerminateEdit
- // is set to false in the .uno:Save command).
- SfxLokHelper::notifyAllViews(LOK_CALLBACK_STATE_CHANGED, ".uno:ModifiedStatus=true");
+ GetViewData()->GetDocShell()->SetModified();
+ rBindings.Invalidate(SID_SAVEDOC);
+ rBindings.Invalidate(SID_DOC_MODIFIED);
}
OUString aStr( static_cast<const SfxStringItem&>(pReqArgs->