summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorChris Sherlock <chris.sherlock79@gmail.com>2022-06-25 10:57:41 +1000
committerTomaž Vajngerl <quikee@gmail.com>2022-11-13 14:04:02 +0100
commit5ccba00d2007d664b9ffd0f956323a8180cb8e66 (patch)
tree025fb6928ceaa9a3a7842975104675a2708fc095 /vcl
parentd773da0c083b4ee1cf1cccc2bd7846cbdbe37ed8 (diff)
vcl: extract functions AllRenderersPaused() and PruneMarkedRenderers()
Change-Id: I0fc55e829e22b81a076f2b66d78bb2b90abdfc41 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/136413 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/animate/Animation.cxx35
1 files changed, 20 insertions, 15 deletions
diff --git a/vcl/source/animate/Animation.cxx b/vcl/source/animate/Animation.cxx
index e1bd5ba042fc..5d4a208a6b30 100644
--- a/vcl/source/animate/Animation.cxx
+++ b/vcl/source/animate/Animation.cxx
@@ -361,6 +361,24 @@ void Animation::RenderNextFrameInAllRenderers()
ImplRestartTimer(pCurrentFrameBmp->mnWait);
}
+void Animation::PruneMarkedRenderers()
+{
+ // delete all unmarked views
+ auto removeStart = std::remove_if(maRenderers.begin(), maRenderers.end(),
+ [](const auto& pRenderer) { return !pRenderer->isMarked(); });
+ maRenderers.erase(removeStart, maRenderers.cend());
+
+ // reset marked state
+ std::for_each(maRenderers.cbegin(), maRenderers.cend(),
+ [](const auto& pRenderer) { pRenderer->setMarked(false); });
+}
+
+bool Animation::IsAnyRendererActive()
+{
+ return std::any_of(maRenderers.cbegin(), maRenderers.cend(),
+ [](const auto& pRenderer) { return !pRenderer->isPaused(); });
+}
+
IMPL_LINK_NOARG(Animation, ImplTimeoutHdl, Timer*, void)
{
const size_t nAnimCount = maFrames.size();
@@ -373,21 +391,8 @@ IMPL_LINK_NOARG(Animation, ImplTimeoutHdl, Timer*, void)
{
maNotifyLink.Call(this);
PopulateRenderers();
-
- // delete all unmarked views
- auto removeStart
- = std::remove_if(maRenderers.begin(), maRenderers.end(),
- [](const auto& pRenderer) { return !pRenderer->isMarked(); });
- maRenderers.erase(removeStart, maRenderers.cend());
-
- // check if every remaining view is paused
- bIsAnyRendererActive
- = std::any_of(maRenderers.cbegin(), maRenderers.cend(),
- [](const auto& pRenderer) { return !pRenderer->isPaused(); });
-
- // reset marked state
- std::for_each(maRenderers.cbegin(), maRenderers.cend(),
- [](const auto& pRenderer) { pRenderer->setMarked(false); });
+ PruneMarkedRenderers();
+ bIsAnyRendererActive = IsAnyRendererActive();
}
if (maRenderers.empty())