[Libreoffice] timers in calc
dtardon at redhat.com
Tue Nov 23 23:39:11 PST 2010
On Wed, Nov 24, 2010 at 08:14:08AM +0100, Julien Nabet wrote:
> Le 24/11/2010 08:11, Julien Nabet a écrit :
> >Date: Tue, 23 Nov 2010 22:20:36 -0500
> >From: Kohei Yoshida<kyoshida at novell.com>
> >Subject: Re: [Libreoffice] [PATCH] try to correct some timers in sc +
> > question
> >To:libreoffice at lists.freedesktop.org
> >Message-ID:<1290568836.2532.14.camel at localhost>
> >Content-Type: text/plain; charset="UTF-8"
> >Hi Julien,
> >On Sat, 2010-11-20 at 01:19 +0100, Julien Nabet wrote:
> >>> Hello,
> >>> > Here's a try to correct some timers in scmod.cxx.
> >>> Here's what I did and why.
> >>> > 1) In IMPL_LINK( ScModule, SpellTimerHdl, Timer*, EMPTYARG
> >>> I just added aSpellTimer.Stop() when there's neither input from keyboard
> >>> nor ContinueOnlineSpelling.
> >>> + I changed the function to have 1 return only.
> >>> > 2) In IMPL_LINK( ScModule, IdleHandler, Timer*, EMPTYARG )
> >>> I removed all the things with bSpell since it seems that
> >>> ContinueOnlineSpelling is managed by SpellTimerHdl
> >>> I'd like to add a stop but i'd like first to understand what's the use
> >>> of all the SC_IDLE_STEP, SC_IDLE_MAX, nIdleCount...
> >>> > I repeat, this patch is just a try. If I'm all wrong,
> >>sorry for the
> >>> noise and please, explain my mistakes.
> >Well, I applaud your attempt to challenge this rather difficult task,
> >and sorry it took me so long to get back to you.
> >I took a closer look at this issue, and while I don't yet have a
> >complete picture of how this can be fixed, I can at least see that the
> >problem is not with the spell check timer, but the idle timer. The
> >spell check timer itself actually turns itself off rather nicely after
> >it does what it needs. The idle timer, OTOH, keeps on running pretty
> >much forever. I guess my previous comment about the spell check timer
> >may have given you the wrong impression. Sorry about that.
> >So, let's not change the spell check timer since it doesn't look broken,
> >and let's focus on fixing the idle timer itself.
> To know how to fix the idle timer I'd like first understand well how
> it works since it seems to be simpler than idletimer. Could you tell
> me when and how the spelltimer is stopped ? (I haven't seen where it
> had a stop).
a timer is stopped after it expired, unless it's explicitly restarted or
unless it's an auto timer (see Timer::ImplTimerCallbackProc in
vcl/source/app/timer.cxx). If you look at sc/source/ui/app/scmod.cxx,
you see that aSpellTimer is only restared (in SpellTimerHdl) if there is
a fresh keyboard input or if spell checking of the whole sheet hasn't
been finished yet, but aIdleTimer is restarted (in IdleHandler)
More information about the LibreOffice