diff --git a/src/managers/PointerManager.cpp b/src/managers/PointerManager.cpp index 4cd4a3a25..acda92607 100644 --- a/src/managers/PointerManager.cpp +++ b/src/managers/PointerManager.cpp @@ -161,7 +161,7 @@ void CPointerManager::setCursorSurface(SP surf, const if (surf->resource()->m_current.texture) { m_currentCursorImage.size = surf->resource()->m_current.bufferSize; - g_pSurfaceManager->sendFrameCallbacks(surf->resource(), Time::steadyNow()); + g_pSurfaceManager->scheduleForFrame(Desktop::focusState()->monitor(), surf->resource()); } } @@ -598,7 +598,7 @@ void CPointerManager::renderSoftwareCursorsFor(PHLMONITOR pMonitor, const Time:: if (!state->hardwareFailed && state->softwareLocks == 0 && !forceRender) { if (m_currentCursorImage.surface) - g_pSurfaceManager->sendFrameCallbacks(m_currentCursorImage.surface->resource(), Time::steadyNow()); + g_pSurfaceManager->scheduleForFrame(pMonitor, m_currentCursorImage.surface->resource()); return; } @@ -634,7 +634,7 @@ void CPointerManager::renderSoftwareCursorsFor(PHLMONITOR pMonitor, const Time:: g_pHyprRenderer->m_renderPass.add(makeUnique(std::move(data))); if (m_currentCursorImage.surface) - g_pSurfaceManager->sendFrameCallbacks(m_currentCursorImage.surface->resource(), Time::steadyNow()); + g_pSurfaceManager->scheduleForFrame(pMonitor, m_currentCursorImage.surface->resource()); } Vector2D CPointerManager::getCursorPosForMonitor(PHLMONITOR pMonitor) { diff --git a/src/protocols/core/Compositor.cpp b/src/protocols/core/Compositor.cpp index fb2d1d209..aff869e5a 100644 --- a/src/protocols/core/Compositor.cpp +++ b/src/protocols/core/Compositor.cpp @@ -15,6 +15,7 @@ #include "config/ConfigValue.hpp" #include "../../managers/eventLoop/EventLoopManager.hpp" #include "../../managers/SurfaceManager.hpp" +#include "../../desktop/state/FocusState.hpp" #include "protocols/types/SurfaceRole.hpp" #include "render/Texture.hpp" #include @@ -433,7 +434,7 @@ void CWLSurfaceResource::map() { m_mapped = true; - g_pSurfaceManager->sendFrameCallbacks(m_self, Time::steadyNow()); + g_pSurfaceManager->scheduleForFrame(Desktop::focusState()->monitor(), m_self); m_current.bufferDamage = CBox{{}, m_current.bufferSize}; m_pending.bufferDamage = CBox{{}, m_pending.bufferSize}; diff --git a/src/protocols/core/DataDevice.cpp b/src/protocols/core/DataDevice.cpp index 50b5ea55a..75475c265 100644 --- a/src/protocols/core/DataDevice.cpp +++ b/src/protocols/core/DataDevice.cpp @@ -837,7 +837,7 @@ void CWLDataDeviceProtocol::renderDND(PHLMONITOR pMonitor, const Time::steady_tp CBox damageBox = CBox{surfacePos, m_dnd.dndSurface->m_current.size}.expand(5); g_pHyprRenderer->damageBox(damageBox); - g_pSurfaceManager->sendFrameCallbacks(m_dnd.dndSurface, when); + g_pSurfaceManager->scheduleForFrame(pMonitor, m_dnd.dndSurface); } bool CWLDataDeviceProtocol::dndActive() { diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 325c66ff3..89a38a9a9 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -171,7 +171,7 @@ CHyprRenderer::CHyprRenderer() { if (!w->wlSurface() || !w->wlSurface()->resource() || shouldRenderWindow(w.lock())) continue; - g_pSurfaceManager->sendFrameCallbacks(w->wlSurface()->resource(), Time::steadyNow()); + g_pSurfaceManager->scheduleForFrame(Desktop::focusState()->monitor(), w->wlSurface()->resource()); auto FEEDBACK = makeUnique(w->wlSurface()->resource()); FEEDBACK->attachMonitor(Desktop::focusState()->monitor()); @@ -1738,7 +1738,7 @@ void CHyprRenderer::sendFrameEventsToWorkspace(PHLMONITOR pMonitor, PHLWORKSPACE if (!view->aliveAndVisible()) continue; - g_pSurfaceManager->sendFrameCallbacks(view->wlSurface()->resource(), Time::steadyNow()); + g_pSurfaceManager->scheduleForFrame(pMonitor, view->wlSurface()->resource()); } }