[Libreoffice] timers in calc

David Tardon 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.
> >
> Hello,
> 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).
> Julien.

Hi Julien,

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 mailing list