diff options
Diffstat (limited to 'sw/source/core')
-rw-r--r-- | sw/source/core/doc/DocumentTimerManager.cxx | 24 | ||||
-rw-r--r-- | sw/source/core/inc/DocumentTimerManager.hxx | 2 | ||||
-rw-r--r-- | sw/source/core/inc/docfld.hxx | 2 | ||||
-rw-r--r-- | sw/source/core/inc/rootfrm.hxx | 4 |
4 files changed, 16 insertions, 16 deletions
diff --git a/sw/source/core/doc/DocumentTimerManager.cxx b/sw/source/core/doc/DocumentTimerManager.cxx index 5429c6edbda6..35f2eb94dcbd 100644 --- a/sw/source/core/doc/DocumentTimerManager.cxx +++ b/sw/source/core/doc/DocumentTimerManager.cxx @@ -49,9 +49,13 @@ DocumentTimerManager::DocumentTimerManager( SwDoc& i_rSwdoc ) : m_rDoc( i_rSwdoc void DocumentTimerManager::StartIdling() { - mbStartIdleTimer = true; - if( !mIdleBlockCount ) + if( !mIdleBlockCount && !maDocIdle.IsActive() ) + { + mbStartIdleTimer = false; maDocIdle.Start(); + } + else + mbStartIdleTimer = true; } void DocumentTimerManager::StopIdling() @@ -70,14 +74,10 @@ void DocumentTimerManager::UnblockIdling() { --mIdleBlockCount; if( !mIdleBlockCount && mbStartIdleTimer && !maDocIdle.IsActive() ) + { + mbStartIdleTimer = false; maDocIdle.Start(); -} - -void DocumentTimerManager::StartBackgroundJobs() -{ - // Trigger DoIdleJobs(), asynchronously. - if (!maDocIdle.IsActive()) //fdo#73165 if the timer is already running don't restart from 0 - maDocIdle.Start(); + } } DocumentTimerManager::IdleJob DocumentTimerManager::GetNextIdleJob() const @@ -123,13 +123,14 @@ DocumentTimerManager::IdleJob DocumentTimerManager::GetNextIdleJob() const return IdleJob::None; } -IMPL_LINK( DocumentTimerManager, DoIdleJobs, Timer*, pIdle, void ) +IMPL_LINK_NOARG( DocumentTimerManager, DoIdleJobs, Timer*, void ) { #ifdef TIMELOG static ::rtl::Logfile* pModLogFile = 0; if( !pModLogFile ) pModLogFile = new ::rtl::Logfile( "First DoIdleJobs" ); #endif + BlockIdling(); IdleJob eJob = GetNextIdleJob(); @@ -183,7 +184,8 @@ IMPL_LINK( DocumentTimerManager, DoIdleJobs, Timer*, pIdle, void ) } if ( IdleJob::None != eJob ) - pIdle->Start(); + StartIdling(); + UnblockIdling(); #ifdef TIMELOG if( pModLogFile && 1 != (long)pModLogFile ) diff --git a/sw/source/core/inc/DocumentTimerManager.hxx b/sw/source/core/inc/DocumentTimerManager.hxx index d8c1a76b2a14..214c0f626a75 100644 --- a/sw/source/core/inc/DocumentTimerManager.hxx +++ b/sw/source/core/inc/DocumentTimerManager.hxx @@ -54,8 +54,6 @@ public: void UnblockIdling() override; - void StartBackgroundJobs() override; - bool IsDocIdle() const override; private: diff --git a/sw/source/core/inc/docfld.hxx b/sw/source/core/inc/docfld.hxx index 9979d557a8ee..fea8face62de 100644 --- a/sw/source/core/inc/docfld.hxx +++ b/sw/source/core/inc/docfld.hxx @@ -169,7 +169,7 @@ public: if (b) { - pDocument->getIDocumentTimerAccess().StartBackgroundJobs(); + pDocument->getIDocumentTimerAccess().StartIdling(); } } diff --git a/sw/source/core/inc/rootfrm.hxx b/sw/source/core/inc/rootfrm.hxx index 8dfc3452dd94..ae32cc4e6278 100644 --- a/sw/source/core/inc/rootfrm.hxx +++ b/sw/source/core/inc/rootfrm.hxx @@ -244,7 +244,7 @@ public: // May be NULL if called from SfxBaseModel::dispose // (this happens in the build test 'rtfexport'). if (pCurrShell != nullptr) - pCurrShell->GetDoc()->getIDocumentTimerAccess().StartBackgroundJobs(); + pCurrShell->GetDoc()->getIDocumentTimerAccess().StartIdling(); } bool IsIdleFormat() const { return mbIdleFormat; } void ResetIdleFormat() { mbIdleFormat = false; } @@ -260,7 +260,7 @@ public: // May be NULL if called from SfxBaseModel::dispose // (this happens in the build test 'rtfexport'). if (pCurrShell != nullptr) - pCurrShell->GetDoc()->getIDocumentTimerAccess().StartBackgroundJobs(); + pCurrShell->GetDoc()->getIDocumentTimerAccess().StartIdling(); } } |