https://bugs.documentfoundation.org/show_bug.cgi?id=166284

            Bug ID: 166284
           Summary: remove busy-timer in calc
           Product: LibreOffice
           Version: 25.8.0.0 alpha0+
          Hardware: All
                OS: All
            Status: UNCONFIRMED
          Severity: normal
          Priority: medium
         Component: Calc
          Assignee: [email protected]
          Reporter: [email protected]

Calc has (hopefully) after https://gerrit.libreoffice.org/c/core/+/184414 the
last busy-timer which sits and spins for no really good reason - checking
things we could have known about earlier.

sc/source/ui/app/scmod.cxx

IMPL_LINK_NOARG(ScModule, IdleHandler, Timer *, void)

Does several things that should happen at 'idle' - and possibly its fair enough
to have a timeout instead of a very low priority idle: that's not clear - but
... we should not be doing this all the time with this complex back-off
timeout.

if 'bMore' is not true - we should stop the timer not back-it off.

We should audit the things that are done here - so eg. if:

        // While calculating a Basic formula, a paint event may have occurred,
        // so check the bNeedsRepaint flags for this document's views

the bNeedsRepaint flag is set and was not set before - we should re-queue the
calc timer to do this work - but otherwise not run it - we don't want to burn
CPU and power un-necessarily if there is no basic formula in use eg. =)

similarly for links & calculating text width and so on - we should queue the
idle handler as/when there is some real change it could do some work and not
otherwise.

Patch linked above is a similar fix for swapping out objects.

Thanks ! =)

-- 
You are receiving this mail because:
You are the assignee for the bug.

Reply via email to