Date: prev next · Thread: first prev next last
2018 Archives by date, by thread · List index


Hi Brian,

Am 25.09.2018 um 08:40 schrieb Brian Fraser:
I'm looking for someone to help me understand why Impress uses a timer to
"rebuild the API core from the internal structure", i.e. the
MainSequence::maTimer in MainSequence::startRebuildTimer().

I'm working on Bug 118065 (Impress: "UI - Reordering animations is
extremely slow"). I've walked through the code and found the UI does not
redraw the animation list sidebar until after the maTimer expires (timer
currently set to 0.5s). This means that almost anything you do with editing
an animation has a half-second UI lag.

Why is this done on a timer? The code *seems* to function OK if the timer
is made shorter (0.05s), or even if I call implRebuild() directly from
MainSequnec::startRebuildTimer() (i.e., not use the timer). What kind of
things could go wrong by calling it without the timer, or making the timer
very very short?

git blame tells me this code was added to fix https://bz.apache.org/ooo/show_bug.cgi?id=42856
in commit 7c126a4418b ("#i42856# added async updates via vcl timers").
That code is from 2005 and the added comments don't help much either.

So my guess is it should be fine to just lower the timeout to some reasonable value (50ms?).

There is also some code to handle non-timer UI updates on notification (see 
MainSequence::getRootNode).

Normally you add a timer, if you might get a lot of updates via some code path, so you don't block
the UI just for redrawing all the time. So it kind of works like a FPS limiter.

For the original bug 500ms was probably enough to show the animations on reload.

HTH

Jan-Marek

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.