The branch, biginset, has been updated. - Log -----------------------------------------------------------------
commit 724abcf97cad9d59cc5fed8e86c927c6c7473191 Author: Jean-Marc Lasgouttes <[email protected]> Date: Thu Dec 21 16:33:06 2023 +0100 Do not compute metrics at each preview when loading file With the branch-test.lyx file from #12297, loading takes forever when previews are activated. This is because each preview element causes a full screen metrics recomputation. This commit just skips these calls and only does one when all previews have been obtained. As a result, computing the previews takes 1 second instead of 25 seconds on branch-test.lyx. Part of bug #12297. diff --git a/src/graphics/PreviewLoader.cpp b/src/graphics/PreviewLoader.cpp index a350a49..aec8b1e 100644 --- a/src/graphics/PreviewLoader.cpp +++ b/src/graphics/PreviewLoader.cpp @@ -786,6 +786,16 @@ void PreviewLoader::Impl::finishedGenerating(pid_t pid, int retval) // Remove the item from the list of still-executing processes. in_progress_.erase(git); +#if 0 + /* FIXME : there is no need for all these calls, which recompute + * all metrics for each and every preview. The single call at the + * end of this method is sufficient. + + * It seems that this whole imageReady mechanism is actually not + * needed. If it is the case, the whole updateFrontend/updateInset + * bloat can go too. + */ + // Tell the outside world list<PreviewImagePtr>::const_reverse_iterator nit = newimages.rbegin(); @@ -794,6 +804,8 @@ void PreviewLoader::Impl::finishedGenerating(pid_t pid, int retval) for (; nit != nend; ++nit) { imageReady(*nit->get()); } +#endif + finished_generating_ = true; buffer_.scheduleRedrawWorkAreas(); } ----------------------------------------------------------------------- Summary of changes: src/graphics/PreviewLoader.cpp | 12 ++++++++++++ 1 files changed, 12 insertions(+), 0 deletions(-) hooks/post-receive -- Repository for new features -- lyx-cvs mailing list [email protected] http://lists.lyx.org/mailman/listinfo/lyx-cvs
