[Libreoffice-commits] core.git: Branch 'aoo/trunk' - 6 commits - boost/boost-os2.patch boost/makefile.mk framework/source sd/source svtools/source svx/source sw/inc sw/source ucb/source

Yuri Dario ydario at apache.org
Tue Feb 18 01:07:46 CET 2014


 boost/boost-os2.patch                              |   22 ++++++
 boost/makefile.mk                                  |    3 
 framework/source/layoutmanager/layoutmanager.cxx   |    3 
 sd/source/ui/func/fuinsert.cxx                     |    8 ++
 svtools/source/misc/langtab.src                    |    2 
 svx/source/svdraw/svdedtv.cxx                      |   21 ++++++
 sw/inc/docsh.hxx                                   |    6 -
 sw/inc/swwait.hxx                                  |   19 ++++-
 sw/source/core/doc/docdesc.cxx                     |    2 
 sw/source/core/edit/autofmt.cxx                    |    2 
 sw/source/core/edit/edtab.cxx                      |    4 -
 sw/source/core/frmedt/fetab.cxx                    |    4 -
 sw/source/core/layout/layact.cxx                   |    2 
 sw/source/core/view/viewsh.cxx                     |   26 +++----
 sw/source/ui/app/appenv.cxx                        |    2 
 sw/source/ui/app/applab.cxx                        |    2 
 sw/source/ui/app/docsh.cxx                         |    8 +-
 sw/source/ui/app/docsh2.cxx                        |   24 ++-----
 sw/source/ui/app/docshini.cxx                      |    4 -
 sw/source/ui/app/swwait.cxx                        |   69 +++++++++++++--------
 sw/source/ui/dbui/dbinsdlg.cxx                     |    4 -
 sw/source/ui/dbui/dbmgr.cxx                        |    2 
 sw/source/ui/dialog/docstdlg.cxx                   |    2 
 sw/source/ui/dochdl/swdtflvr.cxx                   |   11 +--
 sw/source/ui/envelp/envlop1.cxx                    |    2 
 sw/source/ui/index/toxmgr.cxx                      |    2 
 sw/source/ui/lingu/hyp.cxx                         |    2 
 sw/source/ui/misc/glossary.cxx                     |    4 -
 sw/source/ui/misc/redlndlg.cxx                     |   10 +--
 sw/source/ui/misc/srtdlg.cxx                       |    2 
 sw/source/ui/shells/annotsh.cxx                    |    2 
 sw/source/ui/shells/basesh.cxx                     |    4 -
 sw/source/ui/shells/drawsh.cxx                     |    2 
 sw/source/ui/shells/drwtxtex.cxx                   |    2 
 sw/source/ui/shells/frmsh.cxx                      |    2 
 sw/source/ui/shells/grfsh.cxx                      |    2 
 sw/source/ui/shells/textsh1.cxx                    |    2 
 sw/source/ui/uiview/view2.cxx                      |    6 -
 sw/source/ui/uiview/viewling.cxx                   |    2 
 sw/source/ui/uiview/viewsrch.cxx                   |   10 +--
 ucb/source/ucp/webdav/SerfCallbacks.hxx            |    2 
 ucb/source/ucp/webdav/SerfCopyReqProcImpl.cxx      |    2 
 ucb/source/ucp/webdav/SerfDeleteReqProcImpl.cxx    |    2 
 ucb/source/ucp/webdav/SerfMkColReqProcImpl.cxx     |    2 
 ucb/source/ucp/webdav/SerfMoveReqProcImpl.cxx      |    2 
 ucb/source/ucp/webdav/SerfPostReqProcImpl.cxx      |    2 
 ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx       |    2 
 ucb/source/ucp/webdav/SerfRequestProcessor.hxx     |    2 
 ucb/source/ucp/webdav/SerfRequestProcessorImpl.hxx |    2 
 49 files changed, 199 insertions(+), 127 deletions(-)

New commits:
commit 60f06b770338e6c4f9da8e9d9322f969a2742bd0
Author: Yuri Dario <ydario at apache.org>
Date:   Mon Feb 17 18:08:12 2014 +0000

    #i123817# restored OS/2 boost patches.

diff --git a/boost/boost-os2.patch b/boost/boost-os2.patch
new file mode 100644
index 0000000..2c23a87
--- /dev/null
+++ b/boost/boost-os2.patch
@@ -0,0 +1,22 @@
+--- misc/boost_1_55_0/boost/tr1/detail/config.hpp	2010-06-12 11:30:02.000000000 +0200
++++ misc/build/boost_1_55_0/boost/tr1/detail/config.hpp	2013-07-04 12:49:12.000000000 +0200
+@@ -9,6 +9,7 @@
+ #include <cstddef>
+ 
+ #if (defined(__GNUC__) && !(defined(linux) || defined(__linux) || defined(__linux__))) \
++   && !defined(__OS2__) \
+    || (!defined(_AIX) && defined(__IBMCPP__)  && (__IBMCPP__ >= 800)) 
+    // Disable use of #include_next on Linux as typically we are installed in a 
+    // directory that is searched *after* the std lib include path.
+--- misc/boost_1_55_0/boost/tr1/detail/config_all.hpp	2011-07-25 11:28:58.000000000 +0200
++++ misc/build/boost_1_55_0/boost/tr1/detail/config_all.hpp	2013-07-04 12:50:44.000000000 +0200
+@@ -107,7 +107,7 @@
+ #    endif
+ 
+ #      if !defined(BOOST_TR1_DISABLE_INCLUDE_NEXT) && !defined(__ICC) \
+-            && (defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__))
++            && (defined(__OS2__) || defined(linux) || defined(__linux) || defined(__linux__) || defined(__GNU__) || defined(__GLIBC__))
+          // Disable use of #include_next on Linux as typically we are installed in a directory that is searched
+          // *after* the std lib include path:
+ #        define BOOST_TR1_DISABLE_INCLUDE_NEXT
+Binary files misc/boost_1_55_0/libs/math/quaternion/TQE_EA.pdf and misc/build/boost_1_55_0/libs/math/quaternion/TQE_EA.pdf differ
diff --git a/boost/makefile.mk b/boost/makefile.mk
index a63ed37..141de16 100644
--- a/boost/makefile.mk
+++ b/boost/makefile.mk
@@ -47,6 +47,9 @@ all:
 TARFILE_NAME=boost_1_55_0
 TARFILE_MD5=d6eef4b4cacb2183f2bf265a5a03a354
 PATCH_FILES= $(TARFILE_NAME).patch
+.IF "$(GUI)"=="OS2"
+PATCH_FILES+=boost-os2.patch
+.ENDIF
 
 CONFIGURE_DIR=
 CONFIGURE_ACTION=
commit 8d769be834186ae6aa05e64d88b95a6b9d874c2e
Author: Oliver-Rainer Wittmann <orw at apache.org>
Date:   Mon Feb 17 16:38:10 2014 +0000

    124096: avoid unlock of dispatcher by recursive Lock-Unlock-pattern

diff --git a/sw/inc/docsh.hxx b/sw/inc/docsh.hxx
index eec6e57..7f84972 100644
--- a/sw/inc/docsh.hxx
+++ b/sw/inc/docsh.hxx
@@ -280,12 +280,6 @@ public:
 
     sal_Int16   GetUpdateDocMode() const {return nUpdateDocMode;}
 
-    //Activate wait cursor for all windows of this document
-    //Optionally all dispatcher could be Locked
-    //Usually locking should be done using the class: SwWaitObject!
-    void EnterWait( sal_Bool bLockDispatcher );
-    void LeaveWait( sal_Bool bLockDispatcher );
-
     void ToggleBrowserMode(sal_Bool bOn, SwView* pView);
 
     sal_uLong LoadStylesFromFile( const String& rURL, SwgReaderOption& rOpt,
diff --git a/sw/inc/swwait.hxx b/sw/inc/swwait.hxx
index 78c48ad..c6c78a6 100644
--- a/sw/inc/swwait.hxx
+++ b/sw/inc/swwait.hxx
@@ -26,15 +26,28 @@
 #include <tools/solar.h>
 #include "swdllapi.h"
 
+#include <hash_set>
+
 class SwDocShell;
+class SfxDispatcher;
 
 class SW_DLLPUBLIC SwWait
 {
-    SwDocShell &rDoc;
-    sal_Bool        bLock;
 public:
-    SwWait( SwDocShell &rDocShell, sal_Bool bLockDispatcher );
+    // Activate wait cursor for all windows of given document <rDocShell>
+    // Optional all dispatcher could be Locked
+    SwWait(
+        SwDocShell &rDocShell,
+        const bool bLockUnlockDispatcher );
     ~SwWait();
+
+private:
+    void EnterWaitAndLockDispatcher();
+    void LeaveWaitAndUnlockDispatcher();
+
+    SwDocShell& mrDoc;
+    const bool mbLockUnlockDispatcher;
+    std::unordered_set< SfxDispatcher* > mpLockedDispatchers;
 };
 
 #endif
diff --git a/sw/source/core/doc/docdesc.cxx b/sw/source/core/doc/docdesc.cxx
index 7af17f8..cceb389 100644
--- a/sw/source/core/doc/docdesc.cxx
+++ b/sw/source/core/doc/docdesc.cxx
@@ -646,7 +646,7 @@ void SwDoc::PrtDataChanged()
             pSh->GetViewOptions()->IsPrtFormat() )
         {
             if ( GetDocShell() )
-                pWait = new SwWait( *GetDocShell(), sal_True );
+                pWait = new SwWait( *GetDocShell(), true );
 
             pTmpRoot->StartAllAction();
             bEndAction = sal_True;
diff --git a/sw/source/core/edit/autofmt.cxx b/sw/source/core/edit/autofmt.cxx
index 1a24737..d56748a 100644
--- a/sw/source/core/edit/autofmt.cxx
+++ b/sw/source/core/edit/autofmt.cxx
@@ -2683,7 +2683,7 @@ void SwEditShell::AutoFormat( const SvxSwAutoFmtFlags* pAFlags )
     {
         aAFFlags = *pAFlags;
         if( !aAFFlags.bAFmtByInput )
-            pWait = new SwWait( *GetDoc()->GetDocShell(), sal_True );
+            pWait = new SwWait( *GetDoc()->GetDocShell(), true );
     }
 
     SwPaM* pCrsr = GetCrsr();
diff --git a/sw/source/core/edit/edtab.cxx b/sw/source/core/edit/edtab.cxx
index 4e73db6..8c4053d 100644
--- a/sw/source/core/edit/edtab.cxx
+++ b/sw/source/core/edit/edtab.cxx
@@ -131,7 +131,7 @@ sal_Bool SwEditShell::TextToTable( const SwInsertTableOptions& rInsTblOpts,
                                sal_Int16 eAdj,
                                const SwTableAutoFmt* pTAFmt )
 {
-    SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+    SwWait aWait( *GetDoc()->GetDocShell(), true );
     sal_Bool bRet = sal_False;
     StartAllAction();
     FOREACHPAM_START(this)
@@ -145,7 +145,7 @@ sal_Bool SwEditShell::TextToTable( const SwInsertTableOptions& rInsTblOpts,
 
 sal_Bool SwEditShell::TableToText( sal_Unicode cCh )
 {
-    SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+    SwWait aWait( *GetDoc()->GetDocShell(), true );
     sal_Bool bRet = sal_False;
     SwPaM* pCrsr = GetCrsr();
     const SwTableNode* pTblNd =
diff --git a/sw/source/core/frmedt/fetab.cxx b/sw/source/core/frmedt/fetab.cxx
index 04b1074..f27dfec 100644
--- a/sw/source/core/frmedt/fetab.cxx
+++ b/sw/source/core/frmedt/fetab.cxx
@@ -106,7 +106,7 @@ TblWait::TblWait( sal_uInt16 nCnt, SwFrm *pFrm, SwDocShell &rDocShell, sal_uInt1
     sal_Bool bWait = 20 < nCnt || 20 < nCnt2 || (pFrm &&
                  20 < pFrm->ImplFindTabFrm()->GetTable()->GetTabLines().Count());
     if( bWait )
-        pWait = new SwWait( rDocShell, sal_True );
+        pWait = new SwWait( rDocShell, true );
 }
 
 
@@ -1145,7 +1145,7 @@ void SwFEShell::SetRowsToRepeat( sal_uInt16 nSet )
     SwTabFrm *pTab = pFrm ? pFrm->FindTabFrm() : 0;
     if( pTab && pTab->GetTable()->GetRowsToRepeat() != nSet )
     {
-        SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+        SwWait aWait( *GetDoc()->GetDocShell(), true );
         SET_CURR_SHELL( this );
         StartAllAction();
         GetDoc()->SetRowsToRepeat( *pTab->GetTable(), nSet );
diff --git a/sw/source/core/layout/layact.cxx b/sw/source/core/layout/layact.cxx
index cbc8da0..4df850e 100644
--- a/sw/source/core/layout/layact.cxx
+++ b/sw/source/core/layout/layact.cxx
@@ -167,7 +167,7 @@ void SwLayAction::CheckWaitCrsr()
     if ( !IsWait() && IsWaitAllowed() && IsPaint() &&
          ((Ticks() - GetStartTicks()) >= CLOCKS_PER_SEC/2) )
     {
-        pWait = new SwWait( *pRoot->GetFmt()->GetDoc()->GetDocShell(), sal_True );
+        pWait = new SwWait( *pRoot->GetFmt()->GetDoc()->GetDocShell(), true );
     }
 }
 
diff --git a/sw/source/core/view/viewsh.cxx b/sw/source/core/view/viewsh.cxx
index cc89077..05ebb43 100644
--- a/sw/source/core/view/viewsh.cxx
+++ b/sw/source/core/view/viewsh.cxx
@@ -806,7 +806,7 @@ void ViewShell::SetParaSpaceMax( bool bNew )
     IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
     if( pIDSA->get(IDocumentSettingAccess::PARA_SPACE_MAX) != bNew )
     {
-        SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+        SwWait aWait( *GetDoc()->GetDocShell(), true );
         pIDSA->set(IDocumentSettingAccess::PARA_SPACE_MAX, bNew );
         const sal_uInt8 nInv = INV_PRTAREA | INV_TABLE | INV_SECTION;
         lcl_InvalidateAllCntnt( *this,  nInv );
@@ -818,7 +818,7 @@ void ViewShell::SetParaSpaceMaxAtPages( bool bNew )
     IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
     if( pIDSA->get(IDocumentSettingAccess::PARA_SPACE_MAX_AT_PAGES) != bNew )
     {
-        SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+        SwWait aWait( *GetDoc()->GetDocShell(), true );
         pIDSA->set(IDocumentSettingAccess::PARA_SPACE_MAX_AT_PAGES, bNew );
         const sal_uInt8 nInv = INV_PRTAREA | INV_TABLE | INV_SECTION;
         lcl_InvalidateAllCntnt( *this,  nInv );
@@ -830,7 +830,7 @@ void ViewShell::SetTabCompat( bool bNew )
     IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
     if( pIDSA->get(IDocumentSettingAccess::TAB_COMPAT) != bNew  )
     {
-        SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+        SwWait aWait( *GetDoc()->GetDocShell(), true );
         pIDSA->set(IDocumentSettingAccess::TAB_COMPAT, bNew );
         const sal_uInt8 nInv = INV_PRTAREA | INV_SIZE | INV_TABLE | INV_SECTION;
         lcl_InvalidateAllCntnt( *this, nInv );
@@ -842,7 +842,7 @@ void ViewShell::SetAddExtLeading( bool bNew )
     IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
     if ( pIDSA->get(IDocumentSettingAccess::ADD_EXT_LEADING) != bNew )
     {
-        SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+        SwWait aWait( *GetDoc()->GetDocShell(), true );
         pIDSA->set(IDocumentSettingAccess::ADD_EXT_LEADING, bNew );
         SdrModel* pTmpDrawModel = getIDocumentDrawModelAccess()->GetDrawModel();
         if ( pTmpDrawModel )
@@ -857,7 +857,7 @@ void ViewShell::SetUseVirDev( bool bNewVirtual )
     IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
     if ( pIDSA->get(IDocumentSettingAccess::USE_VIRTUAL_DEVICE) != bNewVirtual )
     {
-        SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+        SwWait aWait( *GetDoc()->GetDocShell(), true );
         // this sets the flag at the document and calls PrtDataChanged
         IDocumentDeviceAccess* pIDDA = getIDocumentDeviceAccess();
         pIDDA->setReferenceDeviceType( bNewVirtual, true );
@@ -871,7 +871,7 @@ void ViewShell::SetAddParaSpacingToTableCells( bool _bAddParaSpacingToTableCells
     IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
     if ( pIDSA->get(IDocumentSettingAccess::ADD_PARA_SPACING_TO_TABLE_CELLS) != _bAddParaSpacingToTableCells )
     {
-        SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+        SwWait aWait( *GetDoc()->GetDocShell(), true );
         pIDSA->set(IDocumentSettingAccess::ADD_PARA_SPACING_TO_TABLE_CELLS, _bAddParaSpacingToTableCells );
         const sal_uInt8 nInv = INV_PRTAREA;
         lcl_InvalidateAllCntnt( *this, nInv );
@@ -885,7 +885,7 @@ void ViewShell::SetUseFormerLineSpacing( bool _bUseFormerLineSpacing )
     IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
     if ( pIDSA->get(IDocumentSettingAccess::OLD_LINE_SPACING) != _bUseFormerLineSpacing )
     {
-        SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+        SwWait aWait( *GetDoc()->GetDocShell(), true );
         pIDSA->set(IDocumentSettingAccess::OLD_LINE_SPACING, _bUseFormerLineSpacing );
         const sal_uInt8 nInv = INV_PRTAREA;
         lcl_InvalidateAllCntnt( *this, nInv );
@@ -898,7 +898,7 @@ void ViewShell::SetUseFormerObjectPositioning( bool _bUseFormerObjPos )
     IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
     if ( pIDSA->get(IDocumentSettingAccess::USE_FORMER_OBJECT_POS) != _bUseFormerObjPos )
     {
-        SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+        SwWait aWait( *GetDoc()->GetDocShell(), true );
         pIDSA->set(IDocumentSettingAccess::USE_FORMER_OBJECT_POS, _bUseFormerObjPos );
         lcl_InvalidateAllObjPos( *this );
     }
@@ -910,7 +910,7 @@ void ViewShell::SetConsiderWrapOnObjPos( bool _bConsiderWrapOnObjPos )
     IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
     if ( pIDSA->get(IDocumentSettingAccess::CONSIDER_WRAP_ON_OBJECT_POSITION) != _bConsiderWrapOnObjPos )
     {
-        SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+        SwWait aWait( *GetDoc()->GetDocShell(), true );
         pIDSA->set(IDocumentSettingAccess::CONSIDER_WRAP_ON_OBJECT_POSITION, _bConsiderWrapOnObjPos );
         lcl_InvalidateAllObjPos( *this );
     }
@@ -922,7 +922,7 @@ void ViewShell::SetUseFormerTextWrapping( bool _bUseFormerTextWrapping )
     IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
     if ( pIDSA->get(IDocumentSettingAccess::USE_FORMER_TEXT_WRAPPING) != _bUseFormerTextWrapping )
     {
-        SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+        SwWait aWait( *GetDoc()->GetDocShell(), true );
         pIDSA->set(IDocumentSettingAccess::USE_FORMER_TEXT_WRAPPING, _bUseFormerTextWrapping );
         const sal_uInt8 nInv = INV_PRTAREA | INV_SIZE | INV_TABLE | INV_SECTION;
         lcl_InvalidateAllCntnt( *this, nInv );
@@ -936,7 +936,7 @@ void ViewShell::SetDoNotJustifyLinesWithManualBreak( bool _bDoNotJustifyLinesWit
     IDocumentSettingAccess* pIDSA = getIDocumentSettingAccess();
     if ( pIDSA->get(IDocumentSettingAccess::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK) != _bDoNotJustifyLinesWithManualBreak )
     {
-        SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+        SwWait aWait( *GetDoc()->GetDocShell(), true );
         pIDSA->set(IDocumentSettingAccess::DO_NOT_JUSTIFY_LINES_WITH_MANUAL_BREAK, _bDoNotJustifyLinesWithManualBreak );
         const sal_uInt8 nInv = INV_PRTAREA | INV_SIZE | INV_TABLE | INV_SECTION;
         lcl_InvalidateAllCntnt( *this, nInv );
@@ -955,7 +955,7 @@ void ViewShell::SetDoNotJustifyLinesWithManualBreak( bool _bDoNotJustifyLinesWit
 
 void ViewShell::Reformat()
 {
-    SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+    SwWait aWait( *GetDoc()->GetDocShell(), true );
 
     // Wir gehen auf Nummer sicher:
     // Wir muessen die alten Fontinformationen wegschmeissen,
@@ -997,7 +997,7 @@ void ViewShell::Reformat()
 void ViewShell::CalcLayout()
 {
     SET_CURR_SHELL( this );
-    SwWait aWait( *GetDoc()->GetDocShell(), sal_True );
+    SwWait aWait( *GetDoc()->GetDocShell(), true );
 
     //Cache vorbereiten und restaurieren, damit er nicht versaut wird.
     SwSaveSetLRUOfst aSaveLRU( *SwTxtFrm::GetTxtCache(),
diff --git a/sw/source/ui/app/appenv.cxx b/sw/source/ui/app/appenv.cxx
index fdf7101..24b5365 100644
--- a/sw/source/ui/app/appenv.cxx
+++ b/sw/source/ui/app/appenv.cxx
@@ -252,7 +252,7 @@ static sal_uInt16 nTitleNo = 0;
 
     if (nMode == ENV_NEWDOC || nMode == ENV_INSERT)
     {
-        SwWait aWait( (SwDocShell&)*xDocSh, sal_True );
+        SwWait aWait( (SwDocShell&)*xDocSh, true );
 
         // Dialog auslesen, Item in Config speichern
         const SwEnvItem& rItem = pItem ? *pItem : (const SwEnvItem&) pDlg->GetOutputItemSet()->Get(FN_ENVELOP);
diff --git a/sw/source/ui/app/applab.cxx b/sw/source/ui/app/applab.cxx
index 2d3886a..5eb0b96 100644
--- a/sw/source/ui/app/applab.cxx
+++ b/sw/source/ui/app/applab.cxx
@@ -239,7 +239,7 @@ static sal_uInt16 nBCTitleNo = 0;
 
         {   // block for locks the dispatcher!!
 
-            SwWait aWait( (SwDocShell&)*xDocSh, sal_True );
+            SwWait aWait( (SwDocShell&)*xDocSh, true );
 
             SET_CURR_SHELL(pSh);
             pSh->SetLabelDoc(rItem.bSynchron);
diff --git a/sw/source/ui/app/docsh.cxx b/sw/source/ui/app/docsh.cxx
index ce028e6..16e07a1 100644
--- a/sw/source/ui/app/docsh.cxx
+++ b/sw/source/ui/app/docsh.cxx
@@ -244,7 +244,7 @@ sal_Bool SwDocShell::ConvertFrom( SfxMedium& rMedium )
       return sal_False; // #129881# return if no reader is found
     SotStorageRef pStg=pRead->getSotStorageRef(); // #i45333# save sot storage ref in case of recursive calls
 
-    SwWait aWait( *this, sal_True );
+    SwWait aWait( *this, true );
 
         // SfxProgress unterdruecken, wenn man Embedded ist
     SW_MOD()->SetEmbeddedLoadSave(
@@ -307,7 +307,7 @@ sal_Bool SwDocShell::Save()
     //#i3370# remove quick help to prevent saving of autocorrection suggestions
     if(pView)
         pView->GetEditWin().StopQuickHelp();
-    SwWait aWait( *this, sal_True );
+    SwWait aWait( *this, true );
 
     CalcLayoutForOLEObjects();  // format for OLE objets
     // --> OD 2006-03-17 #i62875#
@@ -416,7 +416,7 @@ sal_Bool SwDocShell::SaveAs( SfxMedium& rMedium )
             }
         }
     }
-    SwWait aWait( *this, sal_True );
+    SwWait aWait( *this, true );
     //#i3370# remove quick help to prevent saving of autocorrection suggestions
     if(pView)
         pView->GetEditWin().StopQuickHelp();
@@ -746,7 +746,7 @@ sal_Bool SwDocShell::ConvertTo( SfxMedium& rMedium )
     //Keine View also das ganze Dokument!
     if ( pWrtShell )
     {
-        SwWait aWait( *this, sal_True );
+        SwWait aWait( *this, true );
         // --> OD 2009-12-31 #i106906#
         const sal_Bool bFormerLockView = pWrtShell->IsViewLocked();
         pWrtShell->LockView( sal_True );
diff --git a/sw/source/ui/app/docsh2.cxx b/sw/source/ui/app/docsh2.cxx
index 9a94f89..e39f19f 100644
--- a/sw/source/ui/app/docsh2.cxx
+++ b/sw/source/ui/app/docsh2.cxx
@@ -244,8 +244,6 @@ void SwDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
     if( !pDoc )
     {
-//MA: Kommt bei der OLE-Registration vor!
-//      ASSERT( !this, "DocShell ist nicht richtig initialisiert!" );
         return ;
     }
 
@@ -261,18 +259,16 @@ void SwDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
         // swithc for more actions
         switch( ((SfxSimpleHint&) rHint).GetId() )
         {
-            case SFX_HINT_TITLECHANGED:
-                if( GetMedium() )
-                    nAction = 2;
+        case SFX_HINT_TITLECHANGED:
+            if( GetMedium() )
+                nAction = 2;
             break;
         }
     }
     else if( rHint.ISA(SfxEventHint) &&
         ((SfxEventHint&) rHint).GetEventId() == SFX_EVENT_LOADFINISHED )
     {
-        // --> OD 2004-12-03 #i38126# - own action id
         nAction = 3;
-        // <--
     }
 
     if( nAction )
@@ -289,31 +285,25 @@ void SwDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
         case 2:
             pDoc->GetSysFldType( RES_FILENAMEFLD )->UpdateFlds();
             break;
-        // --> OD 2004-12-03 #i38126# - own action for event LOADFINISHED
-        // in order to avoid a modified document.
-        // --> OD 2005-02-01 #i41679# - Also for the instance of <SwDoc>
-        // it has to be assured, that it's not modified.
+
+        // own action for event LOADFINISHED in order to avoid a modified document.
+        // Also for the instance of <SwDoc> it has to be assured, that it's not modified.
         // Perform the same as for action id 1, but disable <SetModified>.
         case 3:
             {
                 const bool bResetModified = IsEnableSetModified();
                 if ( bResetModified )
                     EnableSetModified( sal_False );
-                // --> OD 2005-02-01 #i41679#
                 const bool bIsDocModified = pDoc->IsModified();
-                // <--
 
                 pDoc->DocInfoChgd( );
 
-                // --> OD 2005-02-01 #i41679#
                 if ( !bIsDocModified )
                     pDoc->ResetModified();
-                // <--
                 if ( bResetModified )
                     EnableSetModified( sal_True );
             }
             break;
-        // <--
         }
 
         if( pWrtShell )
@@ -1445,7 +1435,7 @@ void SwDocShell::Execute(SfxRequest& rReq)
                 {
                     if( PrepareClose( sal_False ) )
                     {
-                        SwWait aWait( *this, sal_True );
+                        SwWait aWait( *this, true );
 
                         //bDone = bCreateHtml           //#outline level,removed by zhaojianwei
                         //  ? pDoc->GenerateHTMLDoc( aFileName, pSplitColl )
diff --git a/sw/source/ui/app/docshini.cxx b/sw/source/ui/app/docshini.cxx
index 2a82ba2..c217d44 100644
--- a/sw/source/ui/app/docshini.cxx
+++ b/sw/source/ui/app/docshini.cxx
@@ -567,7 +567,7 @@ sal_Bool  SwDocShell::Load( SfxMedium& rMedium )
                 nUpdateDocMode = pUpdateDocItem ? pUpdateDocItem->GetValue() : document::UpdateDocMode::NO_UPDATE;
             }
 
-        SwWait aWait( *this, sal_True );
+        SwWait aWait( *this, true );
         sal_uInt32 nErr = ERR_SWG_READ_ERROR;
         switch( GetCreateMode() )
         {
@@ -684,7 +684,7 @@ sal_Bool  SwDocShell::LoadFrom( SfxMedium& rMedium )
         if ( xAccess->hasByName( aStreamName ) && rMedium.GetStorage()->isStreamElement( aStreamName ) )
         {
             // Das Laden
-            SwWait aWait( *this, sal_True );
+            SwWait aWait( *this, true );
             {
                 ASSERT( !mxBasePool.is(), "wer hat seinen Pool nicht zerstoert?" );
                 mxBasePool = new SwDocStyleSheetPool( *pDoc, SFX_CREATE_MODE_ORGANIZER == GetCreateMode() );
diff --git a/sw/source/ui/app/swwait.cxx b/sw/source/ui/app/swwait.cxx
index 356b486..4d554f7 100644
--- a/sw/source/ui/app/swwait.cxx
+++ b/sw/source/ui/app/swwait.cxx
@@ -24,48 +24,69 @@
 // MARKER(update_precomp.py): autogen include statement, do not remove
 #include "precompiled_sw.hxx"
 
+#include <swwait.hxx>
+#include <docsh.hxx>
 
 #include <sfx2/viewfrm.hxx>
 #include <sfx2/dispatch.hxx>
 #include <vcl/window.hxx>
-#include <docsh.hxx>
-#include <swwait.hxx>
 
 
-void SwDocShell::EnterWait( sal_Bool bLockDispatcher )
+SwWait::SwWait(
+    SwDocShell &rDocShell,
+    const bool bLockUnlockDispatcher )
+    : mrDoc ( rDocShell )
+    , mbLockUnlockDispatcher( bLockUnlockDispatcher )
+    , mpLockedDispatchers()
+{
+    EnterWaitAndLockDispatcher();
+}
+
+SwWait::~SwWait()
+{
+    LeaveWaitAndUnlockDispatcher();
+}
+
+void SwWait::EnterWaitAndLockDispatcher()
 {
-    SfxViewFrame *pFrame = SfxViewFrame::GetFirst( this, sal_False );
+    SfxViewFrame *pFrame = SfxViewFrame::GetFirst( &mrDoc, sal_False );
     while ( pFrame )
     {
         pFrame->GetWindow().EnterWait();
-        if ( bLockDispatcher )
-            pFrame->GetDispatcher()->Lock( sal_True );
-        pFrame = SfxViewFrame::GetNext( *pFrame, this, sal_False );
+        if ( mbLockUnlockDispatcher )
+        {
+            // do not look already locked dispatchers
+            SfxDispatcher* pDispatcher = pFrame->GetDispatcher();
+            if ( !pDispatcher->IsLocked() )
+            {
+                pDispatcher->Lock( sal_True );
+                mpLockedDispatchers.insert( pDispatcher );
+            }
+        }
+
+        pFrame = SfxViewFrame::GetNext( *pFrame, &mrDoc, sal_False );
     }
 }
 
-void SwDocShell::LeaveWait( sal_Bool bLockDispatcher )
+void SwWait::LeaveWaitAndUnlockDispatcher()
 {
-    SfxViewFrame *pFrame = SfxViewFrame::GetFirst( this, sal_False );
+    SfxViewFrame *pFrame = SfxViewFrame::GetFirst( &mrDoc, sal_False );
     while ( pFrame )
     {
         pFrame->GetWindow().LeaveWait();
-        if ( bLockDispatcher )
-            pFrame->GetDispatcher()->Lock( sal_False );
-        pFrame = SfxViewFrame::GetNext( *pFrame, this, sal_False );
-    }
-}
-
-SwWait::SwWait( SwDocShell &rDocShell, sal_Bool bLockDispatcher ) :
-    rDoc ( rDocShell ),
-    bLock( bLockDispatcher )
-{
-    rDoc.EnterWait( bLock );
-}
+        if ( mbLockUnlockDispatcher )
+        {
+            // only unlock dispatchers which had been locked
+            SfxDispatcher* pDispatcher = pFrame->GetDispatcher();
+            if ( mpLockedDispatchers.find( pDispatcher ) != mpLockedDispatchers.end() )
+            {
+                mpLockedDispatchers.erase( pDispatcher );
+                pDispatcher->Lock( sal_False );
+            }
+        }
 
-SwWait::~SwWait()
-{
-    rDoc.LeaveWait( bLock );
+        pFrame = SfxViewFrame::GetNext( *pFrame, &mrDoc, sal_False );
+    }
 }
 
 
diff --git a/sw/source/ui/dbui/dbinsdlg.cxx b/sw/source/ui/dbui/dbinsdlg.cxx
index b208eff..7b3dd1c 100644
--- a/sw/source/ui/dbui/dbinsdlg.cxx
+++ b/sw/source/ui/dbui/dbinsdlg.cxx
@@ -1223,7 +1223,7 @@ void SwInsertDBColAutoPilot::DataToDoc( const Sequence<Any>& rSelection,
                 break;
 
             if( 10 == i )
-                pWait = ::std::auto_ptr<SwWait>(new SwWait( *pView->GetDocShell(), sal_True ));
+                pWait = ::std::auto_ptr<SwWait>(new SwWait( *pView->GetDocShell(), true ));
         }
 
         rSh.MoveTable( GetfnTableCurr(), GetfnTableStart() );
@@ -1455,7 +1455,7 @@ void SwInsertDBColAutoPilot::DataToDoc( const Sequence<Any>& rSelection,
                     rSh.SwEditShell::SplitNode();
 
                 if( 10 == i )
-                    pWait = ::std::auto_ptr<SwWait>(new SwWait( *pView->GetDocShell(), sal_True ));
+                    pWait = ::std::auto_ptr<SwWait>(new SwWait( *pView->GetDocShell(), true ));
             }
 
             if( !bSetCrsr && pMark != NULL)
diff --git a/sw/source/ui/dbui/dbmgr.cxx b/sw/source/ui/dbui/dbmgr.cxx
index e33ee9d..353fe30 100644
--- a/sw/source/ui/dbui/dbmgr.cxx
+++ b/sw/source/ui/dbui/dbmgr.cxx
@@ -504,7 +504,7 @@ void SwNewDBMgr::ImportFromConnection(  SwWrtShell* pSh )
 
                     ImportDBEntry(pSh);
                     if( 10 == ++i )
-                        pWait = new SwWait( *pSh->GetView().GetDocShell(), sal_True);
+                        pWait = new SwWait( *pSh->GetView().GetDocShell(), true );
 
                 } while(ToNextMergeRecord());
             }
diff --git a/sw/source/ui/dialog/docstdlg.cxx b/sw/source/ui/dialog/docstdlg.cxx
index eb2d51a..cc446c9 100644
--- a/sw/source/ui/dialog/docstdlg.cxx
+++ b/sw/source/ui/dialog/docstdlg.cxx
@@ -166,7 +166,7 @@ void SwDocStatPage::Update()
 
     ASSERT( pSh, "Shell not found" );
 
-    SwWait aWait( *pSh->GetDoc()->GetDocShell(), sal_True );
+    SwWait aWait( *pSh->GetDoc()->GetDocShell(), true );
     pSh->StartAction();
     aDocStat = pSh->GetDoc()->GetDocStat();
     pSh->GetDoc()->UpdateDocStat( aDocStat );
diff --git a/sw/source/ui/dochdl/swdtflvr.cxx b/sw/source/ui/dochdl/swdtflvr.cxx
index 6b5d98b..4317410 100644
--- a/sw/source/ui/dochdl/swdtflvr.cxx
+++ b/sw/source/ui/dochdl/swdtflvr.cxx
@@ -831,7 +831,7 @@ int SwTransferable::PrepareForCopy( sal_Bool bIsCut )
     {
         SwWait *pWait = 0;
         if( pWrtShell->ShouldWait() )
-            pWait = new SwWait( *pWrtShell->GetView().GetDocShell(), sal_True );
+            pWait = new SwWait( *pWrtShell->GetView().GetDocShell(), true );
 
         pClpDocFac = new SwDocFac;
 
@@ -996,7 +996,7 @@ int SwTransferable::CalculateAndCopy()
 {
     if(!pWrtShell)
         return 0;
-    SwWait aWait( *pWrtShell->GetView().GetDocShell(), sal_True );
+    SwWait aWait( *pWrtShell->GetView().GetDocShell(), true );
 
     String aStr( pWrtShell->Calculate() );
 
@@ -1018,7 +1018,7 @@ int SwTransferable::CopyGlossary( SwTextBlocks& rGlossary,
 {
     if(!pWrtShell)
         return 0;
-    SwWait aWait( *pWrtShell->GetView().GetDocShell(), sal_True );
+    SwWait aWait( *pWrtShell->GetView().GetDocShell(), true );
 
     pClpDocFac = new SwDocFac;
     SwDoc *const pCDoc = lcl_GetDoc(*pClpDocFac);
@@ -1163,8 +1163,7 @@ int SwTransferable::PasteData( TransferableDataHelper& rData,
                             const Point* pPt, sal_Int8 nDropAction,
                             sal_Bool bPasteSelection )
 {
-    SwWait aWait( *rSh.GetView().
-        GetDocShell(), sal_False );
+    SwWait aWait( *rSh.GetView().GetDocShell(), false );
     SwTrnsfrActionAndUndo* pAction = 0;
     SwModule* pMod = SW_MOD();
 
@@ -2854,7 +2853,7 @@ int SwTransferable::PasteFormat( SwWrtShell& rSh,
                                     TransferableDataHelper& rData,
                                     sal_uLong nFormat )
 {
-    SwWait aWait( *rSh.GetView().GetDocShell(), sal_False );
+    SwWait aWait( *rSh.GetView().GetDocShell(), false );
     int nRet = 0;
 
     sal_uLong nPrivateFmt = FORMAT_PRIVATE;
diff --git a/sw/source/ui/envelp/envlop1.cxx b/sw/source/ui/envelp/envlop1.cxx
index d382b95..9dd43a2 100644
--- a/sw/source/ui/envelp/envlop1.cxx
+++ b/sw/source/ui/envelp/envlop1.cxx
@@ -281,7 +281,7 @@ SwEnvPage::~SwEnvPage()
 
 IMPL_LINK( SwEnvPage, DatabaseHdl, ListBox *, pListBox )
 {
-    SwWait aWait( *pSh->GetView().GetDocShell(), sal_True );
+    SwWait aWait( *pSh->GetView().GetDocShell(), true );
 
     if (pListBox == &aDatabaseLB)
     {
diff --git a/sw/source/ui/index/toxmgr.cxx b/sw/source/ui/index/toxmgr.cxx
index e1f519b..7f7410d 100644
--- a/sw/source/ui/index/toxmgr.cxx
+++ b/sw/source/ui/index/toxmgr.cxx
@@ -293,7 +293,7 @@ sal_Bool SwTOXMgr::UpdateOrInsertTOX(const SwTOXDescription& rDesc,
                                     SwTOXBase** ppBase,
                                     const SfxItemSet* pSet)
 {
-    SwWait aWait( *pSh->GetView().GetDocShell(), sal_True );
+    SwWait aWait( *pSh->GetView().GetDocShell(), true );
     sal_Bool bRet = sal_True;
     const SwTOXBase* pCurTOX = ppBase && *ppBase ? *ppBase : GetCurTOX();
     SwTOXBase* pTOX = (SwTOXBase*)pCurTOX;
diff --git a/sw/source/ui/lingu/hyp.cxx b/sw/source/ui/lingu/hyp.cxx
index f0660c4..35cbff5 100644
--- a/sw/source/ui/lingu/hyp.cxx
+++ b/sw/source/ui/lingu/hyp.cxx
@@ -96,7 +96,7 @@ sal_Bool SwHyphWrapper::SpellContinue()
     if( bAutomatic )
     {
         PSH->StartAllAction();
-        pWait = new SwWait( *pView->GetDocShell(), sal_True );
+        pWait = new SwWait( *pView->GetDocShell(), true );
     }
 
         uno::Reference< uno::XInterface >  xHyphWord = bInSelection ?
diff --git a/sw/source/ui/misc/glossary.cxx b/sw/source/ui/misc/glossary.cxx
index 2c1d2d2..10a53cf 100644
--- a/sw/source/ui/misc/glossary.cxx
+++ b/sw/source/ui/misc/glossary.cxx
@@ -1091,7 +1091,7 @@ sal_Bool  SwGlTreeListBox::NotifyMoving(   SvLBoxEntry*  pTarget,
     if(pDestParent != pSrcParent)
     {
         SwGlossaryDlg* pDlg = (SwGlossaryDlg*)Window::GetParent();
-        SwWait aWait( *pDlg->pSh->GetView().GetDocShell(), sal_True );
+        SwWait aWait( *pDlg->pSh->GetView().GetDocShell(), true );
 
         GroupUserData* pGroupData = (GroupUserData*)pSrcParent->GetUserData();
         String sSourceGroup(pGroupData->sGroupName);
@@ -1139,7 +1139,7 @@ sal_Bool  SwGlTreeListBox::NotifyCopying(   SvLBoxEntry*  pTarget,
     if(pDestParent != pSrcParent)
     {
         SwGlossaryDlg* pDlg = (SwGlossaryDlg*)Window::GetParent();
-        SwWait aWait( *pDlg->pSh->GetView().GetDocShell(), sal_True );
+        SwWait aWait( *pDlg->pSh->GetView().GetDocShell(), true );
 
         GroupUserData* pGroupData = (GroupUserData*)pSrcParent->GetUserData();
         String sSourceGroup(pGroupData->sGroupName);
diff --git a/sw/source/ui/misc/redlndlg.cxx b/sw/source/ui/misc/redlndlg.cxx
index eb275d3..11b75fc 100644
--- a/sw/source/ui/misc/redlndlg.cxx
+++ b/sw/source/ui/misc/redlndlg.cxx
@@ -145,7 +145,7 @@ void SwModelessRedlineAcceptDlg::Activate()
 
     if (pChildWin->GetOldDocShell() != pDocSh)
     {   // Dok-Wechsel
-        SwWait aWait( *pDocSh, sal_False );
+        SwWait aWait( *pDocSh, false );
         SwWrtShell* pSh = pView->GetWrtShellPtr();
 
         pChildWin->SetOldDocShell(pDocSh);  // Rekursion vermeiden (durch Modified-Hdl)
@@ -310,7 +310,7 @@ SwRedlineAcceptDlg::~SwRedlineAcceptDlg()
 
 void SwRedlineAcceptDlg::Init(sal_uInt16 nStart)
 {
-    SwWait aWait( *::GetActiveView()->GetDocShell(), sal_False );
+    SwWait aWait( *::GetActiveView()->GetDocShell(), false );
     pTable->SetUpdateMode(sal_False);
     aUsedSeqNo.Remove((sal_uInt16)0, aUsedSeqNo.Count());
 
@@ -480,7 +480,7 @@ void SwRedlineAcceptDlg::Activate()
         return;
 
     SwView *pView = ::GetActiveView();
-    SwWait aWait( *pView->GetDocShell(), sal_False );
+    SwWait aWait( *pView->GetDocShell(), false );
 
     aUsedSeqNo.Remove((sal_uInt16)0, aUsedSeqNo.Count());
 
@@ -922,7 +922,7 @@ void SwRedlineAcceptDlg::CallAcceptReject( sal_Bool bSelect, sal_Bool bAccept )
     if( !bAccept )
         FnAccRej = &SwEditShell::RejectRedline;
 
-    SwWait aWait( *pSh->GetView().GetDocShell(), sal_True );
+    SwWait aWait( *pSh->GetView().GetDocShell(), true );
     pSh->StartAction();
 
     // #111827#
@@ -1328,7 +1328,7 @@ IMPL_LINK( SwRedlineAcceptDlg, CommandHdl, void*, EMPTYARG )
                     if (pTable->GetSortedCol() == nSortMode)
                         bSortDir = !pTable->GetSortDirection();
 
-                    SwWait aWait( *::GetActiveView()->GetDocShell(), sal_False );
+                    SwWait aWait( *::GetActiveView()->GetDocShell(), false );
                     pTable->SortByCol(nSortMode, bSortDir);
                     if (nSortMode == 0xffff)
                         Init();             // Alles neu fuellen
diff --git a/sw/source/ui/misc/srtdlg.cxx b/sw/source/ui/misc/srtdlg.cxx
index c2d459e..8303936 100644
--- a/sw/source/ui/misc/srtdlg.cxx
+++ b/sw/source/ui/misc/srtdlg.cxx
@@ -392,7 +392,7 @@ void SwSortDlg::Apply()
 
     sal_Bool bRet;
     {
-        SwWait aWait( *rSh.GetView().GetDocShell(), sal_True );
+        SwWait aWait( *rSh.GetView().GetDocShell(), true );
         rSh.StartAllAction();
         if( 0 != (bRet = rSh.Sort( aOptions )))
             rSh.SetModified();
diff --git a/sw/source/ui/shells/annotsh.cxx b/sw/source/ui/shells/annotsh.cxx
index 6e8ce45..d9b4e2a 100644
--- a/sw/source/ui/shells/annotsh.cxx
+++ b/sw/source/ui/shells/annotsh.cxx
@@ -455,7 +455,7 @@ void SwAnnotationShell::Exec( SfxRequest &rReq )
             SwDocStat aCurr;
             SwDocStat aDocStat( rSh.getIDocumentStatistics()->GetDocStat() );
             {
-                SwWait aWait( *rView.GetDocShell(), sal_True );
+                SwWait aWait( *rView.GetDocShell(), true );
                 rSh.StartAction();
                 rSh.CountWords( aCurr );
                 rSh.UpdateDocStat( aDocStat );
diff --git a/sw/source/ui/shells/basesh.cxx b/sw/source/ui/shells/basesh.cxx
index 950ce0e..79aace3 100644
--- a/sw/source/ui/shells/basesh.cxx
+++ b/sw/source/ui/shells/basesh.cxx
@@ -647,7 +647,7 @@ void SwBaseShell::Execute(SfxRequest &rReq)
             break;
         case FN_UPDATE_CHARTS:
             {
-                SwWait aWait( *rView.GetDocShell(), sal_True );
+                SwWait aWait( *rView.GetDocShell(), true );
                 rSh.UpdateAllCharts();
             }
             break;
@@ -752,7 +752,7 @@ void SwBaseShell::Execute(SfxRequest &rReq)
             if ( (!rSh.IsSelFrmMode() || nSelType & nsSelectionType::SEL_GRF) &&
                 nGalleryItemType == com::sun::star::gallery::GalleryItemType::GRAPHIC )
             {
-                SwWait aWait( *rView.GetDocShell(), sal_True );
+                SwWait aWait( *rView.GetDocShell(), true );
 
                 String aGrfName, aFltName;
                 const Graphic aGrf( pGalleryItem->GetGraphic() );
diff --git a/sw/source/ui/shells/drawsh.cxx b/sw/source/ui/shells/drawsh.cxx
index e77f293..9718653 100644
--- a/sw/source/ui/shells/drawsh.cxx
+++ b/sw/source/ui/shells/drawsh.cxx
@@ -340,7 +340,7 @@ void SwDrawShell::Execute(SfxRequest &rReq)
             SwDocStat aCurr;
             SwDocStat aDocStat( rSh.getIDocumentStatistics()->GetDocStat() );
             {
-                SwWait aWait( *GetView().GetDocShell(), sal_True );
+                SwWait aWait( *GetView().GetDocShell(), true );
                 rSh.StartAction();
                 rSh.CountWords( aCurr );
                 rSh.UpdateDocStat( aDocStat );
diff --git a/sw/source/ui/shells/drwtxtex.cxx b/sw/source/ui/shells/drwtxtex.cxx
index c6c780a..63657ef 100644
--- a/sw/source/ui/shells/drwtxtex.cxx
+++ b/sw/source/ui/shells/drwtxtex.cxx
@@ -418,7 +418,7 @@ void SwDrawTextShell::Execute( SfxRequest &rReq )
             SwDocStat aCurr;
             SwDocStat aDocStat( rSh.getIDocumentStatistics()->GetDocStat() );
             {
-                SwWait aWait( *GetView().GetDocShell(), sal_True );
+                SwWait aWait( *GetView().GetDocShell(), true );
                 rSh.StartAction();
                 rSh.CountWords( aCurr );
                 rSh.UpdateDocStat( aDocStat );
diff --git a/sw/source/ui/shells/frmsh.cxx b/sw/source/ui/shells/frmsh.cxx
index b854bd6..b520a12 100644
--- a/sw/source/ui/shells/frmsh.cxx
+++ b/sw/source/ui/shells/frmsh.cxx
@@ -282,7 +282,7 @@ void SwFrameShell::Execute(SfxRequest &rReq)
             SwDocStat aCurr;
             SwDocStat aDocStat( rSh.getIDocumentStatistics()->GetDocStat() );
             {
-                SwWait aWait( *GetView().GetDocShell(), sal_True );
+                SwWait aWait( *GetView().GetDocShell(), true );
                 rSh.StartAction();
                 rSh.CountWords( aCurr );
                 rSh.UpdateDocStat( aDocStat );
diff --git a/sw/source/ui/shells/grfsh.cxx b/sw/source/ui/shells/grfsh.cxx
index b6ffc2d..2ec894b 100644
--- a/sw/source/ui/shells/grfsh.cxx
+++ b/sw/source/ui/shells/grfsh.cxx
@@ -321,7 +321,7 @@ void SwGrfShell::Execute(SfxRequest &rReq)
                     if( sGrfNm.Len() )
                     {
                         SwDocShell* pDocSh = GetView().GetDocShell();
-                        SwWait aWait( *pDocSh, sal_True );
+                        SwWait aWait( *pDocSh, true );
                         SfxMedium* pMedium = pDocSh->GetMedium();
                         INetURLObject aAbs;
                         if( pMedium )
diff --git a/sw/source/ui/shells/textsh1.cxx b/sw/source/ui/shells/textsh1.cxx
index bd47adb..b67d2b2 100644
--- a/sw/source/ui/shells/textsh1.cxx
+++ b/sw/source/ui/shells/textsh1.cxx
@@ -1358,7 +1358,7 @@ void SwTextShell::Execute(SfxRequest &rReq)
         SwDocStat aCurr;
         SwDocStat aDocStat( rSh.getIDocumentStatistics()->GetDocStat() );
         {
-            SwWait aWait( *GetView().GetDocShell(), sal_True );
+            SwWait aWait( *GetView().GetDocShell(), true );
             rSh.StartAction();
             rSh.CountWords( aCurr );
             rSh.UpdateDocStat( aDocStat );
diff --git a/sw/source/ui/uiview/view2.cxx b/sw/source/ui/uiview/view2.cxx
index 4630ce7..6835b5b 100644
--- a/sw/source/ui/uiview/view2.cxx
+++ b/sw/source/ui/uiview/view2.cxx
@@ -209,7 +209,7 @@ int SwView::InsertGraphic( const String &rPath, const String &rFilter,
                                 sal_Bool bLink, GraphicFilter *pFlt,
                                 Graphic* pPreviewGrf, sal_Bool bRule )
 {
-    SwWait aWait( *GetDocShell(), sal_True );
+    SwWait aWait( *GetDocShell(), true );
 
     Graphic aGrf;
     int nRes = GRFILTER_OK;
@@ -2146,7 +2146,7 @@ long SwView::InsertMedium( sal_uInt16 nSlotId, SfxMedium* pMedium, sal_Int16 nVe
                 sal_uLong nErrno;
                 {   //Scope for SwWait-Object, to be able to execute slots
                     //outside this scope.
-                    SwWait aWait( *GetDocShell(), sal_True );
+                    SwWait aWait( *GetDocShell(), true );
                     pWrtShell->StartAllAction();
                     if ( pWrtShell->HasSelection() )
                         pWrtShell->DelRight();      // Selektionen loeschen
@@ -2206,7 +2206,7 @@ extern int lcl_FindDocShell( SfxObjectShellRef& xDocSh, SfxObjectShellLock& xLoc
                                     sFltNm, nVersion, pDocSh );
         if( nRet )
         {
-            SwWait aWait( *GetDocShell(), sal_True );
+            SwWait aWait( *GetDocShell(), true );
             pWrtShell->StartAllAction();
 
             pWrtShell->EnterStdMode();          // Selektionen loeschen
diff --git a/sw/source/ui/uiview/viewling.cxx b/sw/source/ui/uiview/viewling.cxx
index 1554055..79ed597 100644
--- a/sw/source/ui/uiview/viewling.cxx
+++ b/sw/source/ui/uiview/viewling.cxx
@@ -626,7 +626,7 @@ void SwView::StartThesaurus()
     {
         // create dialog
         {   //Scope for SwWait-Object
-            SwWait aWait( *GetDocShell(), sal_True );
+            SwWait aWait( *GetDocShell(), true );
             // load library with dialog only on demand ...
             SvxAbstractDialogFactory* pFact = SvxAbstractDialogFactory::Create();
             pDlg = pFact->CreateThesaurusDialog( &GetEditWin(), xThes, aTmp, eLang );
diff --git a/sw/source/ui/uiview/viewsrch.cxx b/sw/source/ui/uiview/viewsrch.cxx
index 28274ea..c3fb70e 100644
--- a/sw/source/ui/uiview/viewsrch.cxx
+++ b/sw/source/ui/uiview/viewsrch.cxx
@@ -335,7 +335,7 @@ void SwView::ExecSearch(SfxRequest& rReq, sal_Bool bNoMessage)
                     sal_uLong nFound;
 
                     {   //Scope for SwWait-Object
-                        SwWait aWait( *GetDocShell(), sal_True );
+                        SwWait aWait( *GetDocShell(), true );
                         pWrtShell->StartAllAction();
                         nFound = FUNC_Search( aOpts );
                         pWrtShell->EndAllAction();
@@ -479,7 +479,7 @@ sal_Bool SwView::SearchAndWrap(sal_Bool bApi)
     if (!pSrchItem->GetSelection())
         (pWrtShell->*pWrtShell->fnKillSel)(0, sal_False);
 
-    SwWait *pWait = new SwWait( *GetDocShell(), sal_True );
+    SwWait *pWait = new SwWait( *GetDocShell(), true );
     if( FUNC_Search( aOpts ) )
     {
         bFound = sal_True;
@@ -546,7 +546,7 @@ sal_Bool SwView::SearchAndWrap(sal_Bool bApi)
     }
     pWrtShell->StartAllAction();
     pWrtShell->Pop(sal_False);
-    pWait = new SwWait( *GetDocShell(), sal_True );
+    pWait = new SwWait( *GetDocShell(), true );
 
     sal_Bool bSrchBkwrd = DOCPOS_START == aOpts.eEnd;
 
@@ -578,7 +578,7 @@ sal_Bool SwView::SearchAndWrap(sal_Bool bApi)
 
 sal_Bool SwView::SearchAll(sal_uInt16* pFound)
 {
-    SwWait aWait( *GetDocShell(), sal_True );
+    SwWait aWait( *GetDocShell(), true );
     pWrtShell->StartAllAction();
 
     SwSearchOptions aOpts( pWrtShell, pSrchItem->GetBackward() );
@@ -607,7 +607,7 @@ sal_Bool SwView::SearchAll(sal_uInt16* pFound)
 
 void SwView::Replace()
 {
-    SwWait aWait( *GetDocShell(), sal_True );
+    SwWait aWait( *GetDocShell(), true );
 
     pWrtShell->StartAllAction();
 
commit bc34afebf4562ad3a8c48484f3fb9841ab4809b0
Author: Yuri Dario <ydario at apache.org>
Date:   Mon Feb 17 16:32:25 2014 +0000

    #i123744# use only one way to include serf headers.

diff --git a/ucb/source/ucp/webdav/SerfCallbacks.hxx b/ucb/source/ucp/webdav/SerfCallbacks.hxx
index 840e3a3..0f94c6a 100644
--- a/ucb/source/ucp/webdav/SerfCallbacks.hxx
+++ b/ucb/source/ucp/webdav/SerfCallbacks.hxx
@@ -23,7 +23,7 @@
 #ifndef INCLUDED_CALLBACKS_HXX
 #define INCLUDED_CALLBACKS_HXX
 
-#include <serf.h>
+#include <serf/serf.h>
 
 extern "C" apr_status_t Serf_ConnectSetup( apr_socket_t *skt,
                                            serf_bucket_t **read_bkt,
diff --git a/ucb/source/ucp/webdav/SerfCopyReqProcImpl.cxx b/ucb/source/ucp/webdav/SerfCopyReqProcImpl.cxx
index 4cb0796..a883e2c 100644
--- a/ucb/source/ucp/webdav/SerfCopyReqProcImpl.cxx
+++ b/ucb/source/ucp/webdav/SerfCopyReqProcImpl.cxx
@@ -24,7 +24,7 @@
 
 #include "SerfCopyReqProcImpl.hxx"
 
-#include <serf.h>
+#include <serf/serf.h>
 
 namespace http_dav_ucp
 {
diff --git a/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.cxx b/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.cxx
index 54b7190..11148d8 100644
--- a/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.cxx
+++ b/ucb/source/ucp/webdav/SerfDeleteReqProcImpl.cxx
@@ -24,7 +24,7 @@
 
 #include "SerfDeleteReqProcImpl.hxx"
 
-#include <serf.h>
+#include <serf/serf.h>
 
 namespace http_dav_ucp
 {
diff --git a/ucb/source/ucp/webdav/SerfMkColReqProcImpl.cxx b/ucb/source/ucp/webdav/SerfMkColReqProcImpl.cxx
index 14692e1..9b73e9c 100644
--- a/ucb/source/ucp/webdav/SerfMkColReqProcImpl.cxx
+++ b/ucb/source/ucp/webdav/SerfMkColReqProcImpl.cxx
@@ -24,7 +24,7 @@
 
 #include "SerfMkColReqProcImpl.hxx"
 
-#include <serf.h>
+#include <serf/serf.h>
 
 namespace http_dav_ucp
 {
diff --git a/ucb/source/ucp/webdav/SerfMoveReqProcImpl.cxx b/ucb/source/ucp/webdav/SerfMoveReqProcImpl.cxx
index 391313f..91a5463 100644
--- a/ucb/source/ucp/webdav/SerfMoveReqProcImpl.cxx
+++ b/ucb/source/ucp/webdav/SerfMoveReqProcImpl.cxx
@@ -24,7 +24,7 @@
 
 #include "SerfMoveReqProcImpl.hxx"
 
-#include <serf.h>
+#include <serf/serf.h>
 
 namespace http_dav_ucp
 {
diff --git a/ucb/source/ucp/webdav/SerfPostReqProcImpl.cxx b/ucb/source/ucp/webdav/SerfPostReqProcImpl.cxx
index e9a55d0..5d5e71d 100644
--- a/ucb/source/ucp/webdav/SerfPostReqProcImpl.cxx
+++ b/ucb/source/ucp/webdav/SerfPostReqProcImpl.cxx
@@ -24,7 +24,7 @@
 
 #include "SerfPostReqProcImpl.hxx"
 
-#include <serf.h>
+#include <serf/serf.h>
 
 using namespace com::sun::star;
 
diff --git a/ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx b/ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx
index f24f68d..a3f5fba 100644
--- a/ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx
+++ b/ucb/source/ucp/webdav/SerfPutReqProcImpl.cxx
@@ -26,7 +26,7 @@
 
 #include "SerfPutReqProcImpl.hxx"
 
-#include <serf.h>
+#include <serf/serf.h>
 
 namespace http_dav_ucp
 {
diff --git a/ucb/source/ucp/webdav/SerfRequestProcessor.hxx b/ucb/source/ucp/webdav/SerfRequestProcessor.hxx
index 673eb39..c2ab235 100644
--- a/ucb/source/ucp/webdav/SerfRequestProcessor.hxx
+++ b/ucb/source/ucp/webdav/SerfRequestProcessor.hxx
@@ -26,7 +26,7 @@
 #include <apr_errno.h>
 #include <apr_pools.h>
 
-#include <serf.h>
+#include <serf/serf.h>
 
 #include "DAVTypes.hxx"
 #include "DAVResource.hxx"
diff --git a/ucb/source/ucp/webdav/SerfRequestProcessorImpl.hxx b/ucb/source/ucp/webdav/SerfRequestProcessorImpl.hxx
index 96b0d51..57611ec 100644
--- a/ucb/source/ucp/webdav/SerfRequestProcessorImpl.hxx
+++ b/ucb/source/ucp/webdav/SerfRequestProcessorImpl.hxx
@@ -22,7 +22,7 @@
 #ifndef INCLUDED_SERFREQUESTPROCESSORIMPL_HXX
 #define INCLUDED_SERFREQUESTPROCESSORIMPL_HXX
 
-#include <serf.h>
+#include <serf/serf.h>
 
 #include <sal/types.h>
 #include "DAVRequestEnvironment.hxx"
commit 50b10da7434d774ac463c148bbaeb051d2b3a22d
Author: Oliver-Rainer Wittmann <orw at apache.org>
Date:   Mon Feb 17 16:20:12 2014 +0000

    124096: correct clearance of <LayoutManager::m_xDockingAreaAcceptor> on disposing

diff --git a/framework/source/layoutmanager/layoutmanager.cxx b/framework/source/layoutmanager/layoutmanager.cxx
index 20b18fc..e2fadb1 100644
--- a/framework/source/layoutmanager/layoutmanager.cxx
+++ b/framework/source/layoutmanager/layoutmanager.cxx
@@ -2895,6 +2895,8 @@ throw( RuntimeException )
         // Our frame gets disposed, release all our references that depends on a working frame reference.
         Application::RemoveEventListener( LINK( this, LayoutManager, SettingsChanged ) );
 
+        setDockingAreaAcceptor( Reference< ui::XDockingAreaAcceptor >() );
+
         // destroy all elements, it's possible that dettaching is NOT called!
         implts_destroyElements();
         impl_clearUpMenuBar();
@@ -2939,7 +2941,6 @@ throw( RuntimeException )
         m_xFrame.clear();
         delete m_pGlobalSettings;
         m_pGlobalSettings = 0;
-                m_xDockingAreaAcceptor = Reference< ui::XDockingAreaAcceptor >();
 
         bDisposeAndClear = sal_True;
     }
commit 623cd778689bd0851652b2db00b24c308dfb657a
Author: Armin Le Grand <alg at apache.org>
Date:   Mon Feb 17 15:48:54 2014 +0000

    i123468 Added SdrEndTextEdit before replacing EmptyPresObj, also secured ReplaceObjectAtView to check for active TextEdit, assert this and make an emergency correction

diff --git a/sd/source/ui/func/fuinsert.cxx b/sd/source/ui/func/fuinsert.cxx
index a10ccd9..1c19b66 100644
--- a/sd/source/ui/func/fuinsert.cxx
+++ b/sd/source/ui/func/fuinsert.cxx
@@ -378,6 +378,14 @@ void FuInsertOLE::DoExecute( SfxRequest& rReq )
                     pPage->InsertPresObj( pOleObj, ePresObjKind );
                     pOleObj->SetUserCall(pPickObj->GetUserCall());
                 }
+
+                // #123468# we need to end text edit before replacing the object. There cannot yet
+                // being text typed (else it would not be an EmptyPresObj anymore), but it may be
+                // in text edit mode
+                if(mpView->IsTextEdit())
+                {
+                    mpView->SdrEndTextEdit();
+                }
             }
 
             bool bRet = true;
diff --git a/svx/source/svdraw/svdedtv.cxx b/svx/source/svdraw/svdedtv.cxx
index 5656cf0..f69242c 100644
--- a/svx/source/svdraw/svdedtv.cxx
+++ b/svx/source/svdraw/svdedtv.cxx
@@ -39,6 +39,7 @@
 #include "svx/svdstr.hrc"   // Namen aus der Resource
 #include "svx/svdglob.hxx"  // StringCache
 #include <svx/e3dsceneupdater.hxx>
+#include <svx/svdview.hxx>
 
 // #i13033#
 #include <clonelist.hxx>
@@ -1022,6 +1023,26 @@ sal_Bool SdrEditView::InsertObjectAtView(SdrObject* pObj, SdrPageView& rPV, sal_
 
 void SdrEditView::ReplaceObjectAtView(SdrObject* pOldObj, SdrPageView& rPV, SdrObject* pNewObj, sal_Bool bMark)
 {
+    if(IsTextEdit())
+    {
+#ifdef DBG_UTIL
+        if(pOldObj && dynamic_cast< SdrTextObj* >(pOldObj) && static_cast< SdrTextObj* >(pOldObj)->IsTextEditActive())
+        {
+            OSL_ENSURE(false, "OldObject is in TextEdit mode, this has to be ended before replacing it usnig SdrEndTextEdit (!)");
+        }
+
+        if(pNewObj && dynamic_cast< SdrTextObj* >(pNewObj) && static_cast< SdrTextObj* >(pNewObj)->IsTextEditActive())
+        {
+            OSL_ENSURE(false, "NewObject is in TextEdit mode, this has to be ended before replacing it usnig SdrEndTextEdit (!)");
+        }
+#endif
+
+        // #123468# emergency repair situation, needs to cast up to a class derived from
+        // this one; (aw080 has a mechanism for that and the view hierarchy is secured to
+        // always be a SdrView)
+        if(dynamic_cast< SdrView* >(this)) static_cast< SdrView* >(this)->SdrEndTextEdit();
+    }
+
     SdrObjList* pOL=pOldObj->GetObjList();
     const bool bUndo = IsUndoEnabled();
     if( bUndo  )
commit 7cb6c17be30228228b0db7a6497aecca57ad9401
Author: Andre Fischer <af at apache.org>
Date:   Mon Feb 17 12:54:23 2014 +0000

    124241: Fixed the language name 'Kazakh'

diff --git a/svtools/source/misc/langtab.src b/svtools/source/misc/langtab.src
index 6e0214f..4f7eb99 100644
--- a/svtools/source/misc/langtab.src
+++ b/svtools/source/misc/langtab.src
@@ -127,7 +127,7 @@ StringArray STR_ARR_SVT_LANGUAGE_TABLE
         < "Kannada" ; LANGUAGE_KANNADA ; > ;
         < "Kashmiri (Kashmir)" ; LANGUAGE_KASHMIRI ; > ;
         < "Kashmiri (India)" ; LANGUAGE_KASHMIRI_INDIA ; > ;
-        < "Kazak" ; LANGUAGE_KAZAK ; > ;
+        < "Kazakh" ; LANGUAGE_KAZAK ; > ;
         < "Konkani" ; LANGUAGE_KONKANI ; > ;
         < "Korean (RoK)" ; LANGUAGE_KOREAN ; > ;
         < "Latvian" ; LANGUAGE_LATVIAN ; > ;


More information about the Libreoffice-commits mailing list