From bcf7ee6dc225c00b2aea9891ea42aeb18e5b0cc8 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Wed, 23 Mar 2022 22:01:59 +0100 Subject: Added basic animations for windows --- src/events/Devices.cpp | 5 +++-- src/events/Monitors.cpp | 14 ++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) (limited to 'src/events') diff --git a/src/events/Devices.cpp b/src/events/Devices.cpp index 846b9070..ab259f43 100644 --- a/src/events/Devices.cpp +++ b/src/events/Devices.cpp @@ -57,8 +57,9 @@ void Events::listener_mouseAxis(wl_listener* listener, void* data) { void Events::listener_requestMouse(wl_listener* listener, void* data) { const auto EVENT = (wlr_seat_pointer_request_set_cursor_event*)data; - if (EVENT->seat_client == g_pCompositor->m_sSeat.seat->pointer_state.focused_client) - wlr_cursor_set_surface(g_pCompositor->m_sWLRCursor, EVENT->surface, EVENT->hotspot_x, EVENT->hotspot_y); + // TODO: crashes sometimes + //if (EVENT->seat_client == g_pCompositor->m_sSeat.seat->pointer_state.focused_client) + // wlr_cursor_set_surface(g_pCompositor->m_sWLRCursor, EVENT->surface, EVENT->hotspot_x, EVENT->hotspot_y); } void Events::listener_newInput(wl_listener* listener, void* data) { diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp index 072f5c8a..70b4cee4 100644 --- a/src/events/Monitors.cpp +++ b/src/events/Monitors.cpp @@ -98,6 +98,14 @@ void Events::listener_newOutput(wl_listener* listener, void* data) { void Events::listener_monitorFrame(wl_listener* listener, void* data) { SMonitor* const PMONITOR = wl_container_of(listener, PMONITOR, listen_monitorFrame); + // Hack: only check when monitor number 1 refreshes, saves a bit of resources. + // This is for stuff that should be run every frame + // TODO: do this on the most Hz monitor + if (PMONITOR->ID == 0) { + g_pCompositor->sanityCheckWorkspaces(); + g_pAnimationManager->tick(); + } + timespec now; clock_gettime(CLOCK_MONOTONIC, &now); const float bgcol[4] = {0.1f, 0.1f, 0.1f, 1.f}; @@ -115,12 +123,6 @@ void Events::listener_monitorFrame(wl_listener* listener, void* data) { wlr_renderer_end(g_pCompositor->m_sWLRRenderer); wlr_output_commit(PMONITOR->output); - - // Sanity check the workspaces. - // Hack: only check when monitor number 1 refreshes, saves a bit of resources. - if (PMONITOR->ID == 0) { - g_pCompositor->sanityCheckWorkspaces(); - } } void Events::listener_monitorDestroy(wl_listener* listener, void* data) { -- cgit v1.2.3