sw/source/core/doc/doc.cxx | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-)
New commits: commit 1a83b7f884a96e61d631ed2f92b99a5493b3384c Author: Michael Meeks <michael.me...@suse.com> Date: Mon May 14 22:32:37 2012 +0100 sw: avoid over-using over-complicated SfxUndoManager::IsUndoEnabled diff --git a/sw/source/core/doc/doc.cxx b/sw/source/core/doc/doc.cxx index 5a2f44c..635d73e 100644 --- a/sw/source/core/doc/doc.cxx +++ b/sw/source/core/doc/doc.cxx @@ -870,10 +870,10 @@ bool SwDoc::AppendTxtNode( SwPosition& rPos ) bool SwDoc::InsertString( const SwPaM &rRg, const String &rStr, const enum InsertFlags nInsertMode ) { - if (GetIDocumentUndoRedo().DoesUndo()) - { + // fetching DoesUndo is surprisingly expensive + bool bDoesUndo = GetIDocumentUndoRedo().DoesUndo(); + if (bDoesUndo) GetIDocumentUndoRedo().ClearRedo(); // AppendUndo not always called! - } const SwPosition& rPos = *rRg.GetPoint(); @@ -888,18 +888,15 @@ bool SwDoc::InsertString( const SwPaM &rRg, const String &rStr, SwTxtNode *const pNode = rPos.nNode.GetNode().GetTxtNode(); if(!pNode) - { return false; - } SwDataChanged aTmp( rRg, 0 ); - if (!GetIDocumentUndoRedo().DoesUndo() || - !GetIDocumentUndoRedo().DoesGroupUndo()) + if (!bDoesUndo || !GetIDocumentUndoRedo().DoesGroupUndo()) { pNode->InsertText( rStr, rPos.nContent, nInsertMode ); - if (GetIDocumentUndoRedo().DoesUndo()) + if (bDoesUndo) { SwUndoInsert * const pUndo( new SwUndoInsert( rPos.nNode, rPos.nContent.GetIndex(), rStr.Len(), nInsertMode)); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits