parent
69a47ea451
commit
c16445f0a5
@ -0,0 +1,75 @@
|
||||
From 2a944f0b26c6f9732da8981962034aa0f2b9ecf7 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
||||
Date: Wed, 6 Jul 2016 12:29:25 +0100
|
||||
Subject: [PATCH] Resolves: rhbz#1352881 turn off undo generation during undo
|
||||
|
||||
Change-Id: I6aa4ceb09b252ad0b04d8e0a89d8c3327f565b49
|
||||
Reviewed-on: https://gerrit.libreoffice.org/26980
|
||||
Tested-by: Jenkins <ci@libreoffice.org>
|
||||
Reviewed-by: Eike Rathke <erack@redhat.com>
|
||||
Tested-by: Eike Rathke <erack@redhat.com>
|
||||
(cherry picked from commit 06287b9c348281612854d67c4eb2e7a38dc722ca)
|
||||
Reviewed-on: https://gerrit.libreoffice.org/27065
|
||||
---
|
||||
sc/source/ui/undo/undobase.cxx | 36 ++++++++++++++++++++++++++++++++++--
|
||||
1 file changed, 34 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/sc/source/ui/undo/undobase.cxx b/sc/source/ui/undo/undobase.cxx
|
||||
index 792cde5..0133f9a 100644
|
||||
--- a/sc/source/ui/undo/undobase.cxx
|
||||
+++ b/sc/source/ui/undo/undobase.cxx
|
||||
@@ -96,9 +96,36 @@ void ScSimpleUndo::BeginUndo()
|
||||
pDetectiveUndo->Undo();
|
||||
}
|
||||
|
||||
+namespace
|
||||
+{
|
||||
+ class DisableUndoGuard
|
||||
+ {
|
||||
+ private:
|
||||
+ ScDocument& m_rDoc;
|
||||
+ bool m_bUndoEnabled;
|
||||
+ public:
|
||||
+ DisableUndoGuard(ScDocShell *pDocShell)
|
||||
+ : m_rDoc(pDocShell->GetDocument())
|
||||
+ , m_bUndoEnabled(m_rDoc.IsUndoEnabled())
|
||||
+ {
|
||||
+ m_rDoc.EnableUndo(false);
|
||||
+ }
|
||||
+
|
||||
+ ~DisableUndoGuard()
|
||||
+ {
|
||||
+ m_rDoc.EnableUndo(m_bUndoEnabled);
|
||||
+ }
|
||||
+ };
|
||||
+}
|
||||
+
|
||||
void ScSimpleUndo::EndUndo()
|
||||
{
|
||||
- pDocShell->SetDocumentModified();
|
||||
+ {
|
||||
+ // rhbz#1352881 Temporarily turn off undo generation during
|
||||
+ // SetDocumentModified
|
||||
+ DisableUndoGuard aGuard(pDocShell);
|
||||
+ pDocShell->SetDocumentModified();
|
||||
+ }
|
||||
|
||||
ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
|
||||
if (pViewShell)
|
||||
@@ -125,7 +152,12 @@ void ScSimpleUndo::EndRedo()
|
||||
if (pDetectiveUndo)
|
||||
pDetectiveUndo->Redo();
|
||||
|
||||
- pDocShell->SetDocumentModified();
|
||||
+ {
|
||||
+ // rhbz#1352881 Temporarily turn off undo generation during
|
||||
+ // SetDocumentModified
|
||||
+ DisableUndoGuard aGuard(pDocShell);
|
||||
+ pDocShell->SetDocumentModified();
|
||||
+ }
|
||||
|
||||
ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
|
||||
if (pViewShell)
|
||||
--
|
||||
2.7.4
|
||||
|
Loading…
Reference in new issue