include/sfx2/bindings.hxx | 6 ++--- include/vcl/idle.hxx | 13 ----------- sfx2/source/control/bindings.cxx | 45 +++++++++++++++------------------------ vcl/source/app/idle.cxx | 28 ------------------------ 4 files changed, 21 insertions(+), 71 deletions(-)
New commits: commit 13e2133199a0fcfca79a21fa8be475d446b685d0 Author: László Németh <laszlo.nem...@collabora.com> Date: Wed Apr 6 00:20:10 2016 +0200 Revert "process SfxBindings in idle" This reverts commit fa629000e02448c201f3b7afad0ba29b40b115ec. diff --git a/include/sfx2/bindings.hxx b/include/sfx2/bindings.hxx index 4708ca2..bbe5cc4 100644 --- a/include/sfx2/bindings.hxx +++ b/include/sfx2/bindings.hxx @@ -44,7 +44,7 @@ class SfxItemSet; class SfxDispatcher; class SfxBindings; class SfxBindings_Impl; -class Idle; +class Timer; class SfxWorkWindow; class SfxUnoControllerItem; struct SfxFoundCache_Impl; @@ -131,8 +131,8 @@ private: const SfxPoolItem *pItem, SfxItemState eItemState ); SAL_DLLPRIVATE SfxStateCache* GetStateCache( sal_uInt16 nId, sal_uInt16 *pPos); - DECL_DLLPRIVATE_LINK_TYPED( NextJob, Idle *, void ); - SAL_DLLPRIVATE bool NextJob_Impl(Idle * pTimer); + DECL_DLLPRIVATE_LINK_TYPED( NextJob, Timer *, void ); + SAL_DLLPRIVATE bool NextJob_Impl(Timer * pTimer); public: SfxBindings(); diff --git a/include/vcl/idle.hxx b/include/vcl/idle.hxx index e3e7a99..5460d33 100644 --- a/include/vcl/idle.hxx +++ b/include/vcl/idle.hxx @@ -27,7 +27,6 @@ class VCL_DLLPUBLIC Idle : public Scheduler { protected: Link<Idle *, void> maIdleHdl; // Callback Link - bool mbAuto; public: Idle( const sal_Char *pDebugName = nullptr ); @@ -40,24 +39,12 @@ public: void SetIdleHdl( const Link<Idle *, void>& rLink ) { maIdleHdl = rLink; } const Link<Idle *, void>& GetIdleHdl() const { return maIdleHdl; } virtual void Invoke() override; - virtual void SetDeletionFlags() override; virtual bool ReadyForSchedule( bool bTimerOnly, sal_uInt64 nTimeNow ) const override; virtual bool IsIdle() const override; virtual sal_uInt64 UpdateMinPeriod( sal_uInt64 nMinPeriod, sal_uInt64 nTime ) const override; Idle& operator=( const Idle& rIdle ); }; -/// An auto-timer is a multi-shot timer re-emitting itself at -/// interval until destroyed. -class VCL_DLLPUBLIC AutoIdle : public Idle -{ -public: - AutoIdle(); - AutoIdle( const AutoIdle& rIdle ); - - AutoIdle& operator=( const AutoIdle& rIdle ); -}; - #endif // INCLUDED_VCL_IDLE_HXX /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sfx2/source/control/bindings.cxx b/sfx2/source/control/bindings.cxx index 35f9f45..5d13693 100644 --- a/sfx2/source/control/bindings.cxx +++ b/sfx2/source/control/bindings.cxx @@ -71,11 +71,11 @@ using namespace ::com::sun::star; using namespace ::com::sun::star::uno; using namespace ::com::sun::star::util; -//static sal_uInt16 nTimeOut = 300; +static sal_uInt16 nTimeOut = 300; -//#define TIMEOUT_FIRST nTimeOut -//#define TIMEOUT_UPDATING 20 -//#define TIMEOUT_IDLE 2500 +#define TIMEOUT_FIRST nTimeOut +#define TIMEOUT_UPDATING 20 +#define TIMEOUT_IDLE 2500 typedef std::unordered_map< sal_uInt16, bool > InvalidateSlotMap; @@ -218,7 +218,7 @@ public: bool bAllMsgDirty; // Has a MessageServer been invalidated? bool bAllDirty; // After InvalidateAll bool bCtrlReleased; // while EnterRegistrations - AutoIdle aTimer; // for volatile Slots + AutoTimer aTimer; // for volatile Slots bool bInUpdate; // for Assertions bool bInNextJob; // for Assertions bool bFirstRound; // First round in Update @@ -253,7 +253,7 @@ SfxBindings::SfxBindings() // all caches are valid (no pending invalidate-job) // create the list of caches pImp->pCaches = new SfxStateCacheArr_Impl; - pImp->aTimer.SetIdleHdl( LINK(this, SfxBindings, NextJob) ); + pImp->aTimer.SetTimeoutHdl( LINK(this, SfxBindings, NextJob) ); } @@ -708,8 +708,7 @@ void SfxBindings::InvalidateAll if ( !nRegLevel ) { pImp->aTimer.Stop(); - //pImp->aTimer.SetTimeout(TIMEOUT_FIRST); - pImp->aTimer.SetPriority( SchedulerPriority::LOWER ); + pImp->aTimer.SetTimeout(TIMEOUT_FIRST); pImp->aTimer.Start(); } } @@ -761,8 +760,7 @@ void SfxBindings::Invalidate if ( !nRegLevel ) { pImp->aTimer.Stop(); - //pImp->aTimer.SetTimeout(TIMEOUT_FIRST); - pImp->aTimer.SetPriority( SchedulerPriority::LOWER ); + pImp->aTimer.SetTimeout(TIMEOUT_FIRST); pImp->aTimer.Start(); } } @@ -816,8 +814,7 @@ void SfxBindings::InvalidateShell if ( !nRegLevel ) { pImp->aTimer.Stop(); - //pImp->aTimer.SetTimeout(TIMEOUT_FIRST); - pImp->aTimer.SetPriority( SchedulerPriority::LOWER ); + pImp->aTimer.SetTimeout(TIMEOUT_FIRST); pImp->aTimer.Start(); pImp->bFirstRound = true; pImp->nFirstShell = nLevel; @@ -854,8 +851,7 @@ void SfxBindings::Invalidate if ( !nRegLevel ) { pImp->aTimer.Stop(); - //pImp->aTimer.SetTimeout(TIMEOUT_FIRST); - pImp->aTimer.SetPriority( SchedulerPriority::LOWER ); + pImp->aTimer.SetTimeout(TIMEOUT_FIRST); pImp->aTimer.Start(); } } @@ -892,8 +888,7 @@ void SfxBindings::Invalidate if ( !nRegLevel ) { pImp->aTimer.Stop(); - //pImp->aTimer.SetTimeout(TIMEOUT_FIRST); - pImp->aTimer.SetPriority( SchedulerPriority::LOWER ); + pImp->aTimer.SetTimeout(TIMEOUT_FIRST); pImp->aTimer.Start(); } } @@ -1552,12 +1547,12 @@ void SfxBindings::UpdateControllers_Impl } } -IMPL_LINK_TYPED( SfxBindings, NextJob, Idle *, pTimer, void ) +IMPL_LINK_TYPED( SfxBindings, NextJob, Timer *, pTimer, void ) { NextJob_Impl(pTimer); } -bool SfxBindings::NextJob_Impl(Idle * pTimer) +bool SfxBindings::NextJob_Impl(Timer * pTimer) { #ifdef DBG_UTIL // on Windows very often C++ Exceptions (GPF etc.) are caught by MSVCRT @@ -1571,8 +1566,7 @@ bool SfxBindings::NextJob_Impl(Idle * pTimer) if ( Application::GetLastInputInterval() < MAX_INPUT_DELAY && pTimer ) { - //pImp->aTimer.SetTimeout(TIMEOUT_UPDATING); - pImp->aTimer.SetPriority( SchedulerPriority::LOW ); + pImp->aTimer.SetTimeout(TIMEOUT_UPDATING); return true; } @@ -1600,10 +1594,9 @@ bool SfxBindings::NextJob_Impl(Idle * pTimer) } pImp->bAllDirty = false; - //pImp->aTimer.SetTimeout(TIMEOUT_UPDATING); - pImp->aTimer.SetPriority( SchedulerPriority::LOW ); + pImp->aTimer.SetTimeout(TIMEOUT_UPDATING); - // at least .0 loops and further if more jobs are available but no input + // at least 10 loops and further if more jobs are available but no input bool bPreEmptive = pTimer && !pSfxApp->Get_Impl()->nInReschedule; sal_uInt16 nLoops = 10; pImp->bInNextJob = true; @@ -1663,8 +1656,7 @@ bool SfxBindings::NextJob_Impl(Idle * pTimer) } if (bVolatileSlotsPresent) - //pImp->aTimer.SetTimeout(TIMEOUT_IDLE); - pImp->aTimer.SetPriority( SchedulerPriority::LOWEST ); + pImp->aTimer.SetTimeout(TIMEOUT_IDLE); else pImp->aTimer.Stop(); @@ -1782,8 +1774,7 @@ void SfxBindings::LeaveRegistrations( sal_uInt16 nLevel, const char *pFile, int if ( pImp->pCaches && !pImp->pCaches->empty() ) { pImp->aTimer.Stop(); - //pImp->aTimer.SetTimeout(TIMEOUT_FIRST); - pImp->aTimer.SetPriority( SchedulerPriority::LOWER ); + pImp->aTimer.SetTimeout(TIMEOUT_FIRST); pImp->aTimer.Start(); } } diff --git a/vcl/source/app/idle.cxx b/vcl/source/app/idle.cxx index 870406f..123f37a 100644 --- a/vcl/source/app/idle.cxx +++ b/vcl/source/app/idle.cxx @@ -20,16 +20,6 @@ #include <vcl/idle.hxx> #include "saltimer.hxx" -void Idle::SetDeletionFlags() -{ - // If no AutoIdle, then stop. - if ( !mbAuto ) - { - mpSchedulerData->mbDelete = true; - mbActive = false; - } -} - void Idle::Invoke() { maIdleHdl.Call( this ); @@ -44,13 +34,11 @@ Idle& Idle::operator=( const Idle& rIdle ) Idle::Idle( const sal_Char *pDebugName ) : Scheduler( pDebugName ) { - mbAuto = false; } Idle::Idle( const Idle& rIdle ) : Scheduler(rIdle) { maIdleHdl = rIdle.maIdleHdl; - mbAuto = rIdle.mbAuto; } void Idle::Start() @@ -88,20 +76,4 @@ sal_uInt64 Idle::UpdateMinPeriod( sal_uInt64 nMinPeriod, sal_uInt64 /* nTime */ return nMinPeriod; } -AutoIdle::AutoIdle() -{ - mbAuto = true; -} - -AutoIdle::AutoIdle( const AutoIdle& rIdle ) : Idle( rIdle ) -{ - mbAuto = true; -} - -AutoIdle& AutoIdle::operator=( const AutoIdle& rIdle ) -{ - Idle::operator=( rIdle ); - return *this; -} - /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits