summaryrefslogtreecommitdiff
path: root/sw/source/core
diff options
context:
space:
mode:
Diffstat (limited to 'sw/source/core')
-rw-r--r--sw/source/core/doc/DocumentTimerManager.cxx24
-rw-r--r--sw/source/core/inc/DocumentTimerManager.hxx2
-rw-r--r--sw/source/core/inc/docfld.hxx2
-rw-r--r--sw/source/core/inc/rootfrm.hxx4
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();
}
}