From 3d4dc19412921864c25cd25e0cbffd6e1693c43c Mon Sep 17 00:00:00 2001 From: Vaxry <43317083+vaxerski@users.noreply.github.com> Date: Sat, 16 Aug 2025 20:02:15 +0100 Subject: renderer: improve zoom in anims (#11453) Removes `animations:first_launch_animation` as it's useless now --- src/helpers/Monitor.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'src/helpers/Monitor.cpp') diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index fa0965b8..93a798a0 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -49,6 +49,8 @@ CMonitor::CMonitor(SP output_) : m_state(this), m_output(ou static auto PZOOMFACTOR = CConfigValue("cursor:zoom_factor"); g_pAnimationManager->createAnimation(*PZOOMFACTOR, m_cursorZoom, g_pConfigManager->getAnimationPropertyConfig("zoomFactor"), AVARDAMAGE_NONE); m_cursorZoom->setUpdateCallback([this](auto) { g_pHyprRenderer->damageMonitor(m_self.lock()); }); + g_pAnimationManager->createAnimation(0.F, m_zoomAnimProgress, g_pConfigManager->getAnimationPropertyConfig("monitorAdded"), AVARDAMAGE_NONE); + m_zoomAnimProgress->setUpdateCallback([this](auto) { g_pHyprRenderer->damageMonitor(m_self.lock()); }); } CMonitor::~CMonitor() { @@ -61,6 +63,8 @@ void CMonitor::onConnect(bool noRule) { EMIT_HOOK_EVENT("preMonitorAdded", m_self.lock()); CScopeGuard x = {[]() { g_pCompositor->arrangeMonitors(); }}; + m_zoomAnimProgress->setValueAndWarp(0.F); + g_pEventLoopManager->doLater([] { g_pConfigManager->ensurePersistentWorkspacesPresent(); }); m_listeners.frame = m_output->events.frame.listen([this] { @@ -89,6 +93,9 @@ void CMonitor::onConnect(bool noRule) { else PROTO::presentation->onPresented(m_self.lock(), Time::fromTimespec(event.when), event.refresh, event.seq, event.flags); + if (m_zoomAnimProgress->goal() == 0.F) + *m_zoomAnimProgress = 1.F; + m_frameScheduler->onPresented(); }); -- cgit v1.2.3