From ad4fc28f781e01c95e8fedc039451120f6c21250 Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Mon, 28 Mar 2022 22:31:39 +0200 Subject: =?UTF-8?q?=F0=9F=8E=89=20Wrapped=20dynamic=20event=20handlers?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/events/Monitors.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/events/Monitors.cpp') diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp index c2c74bf4..da336106 100644 --- a/src/events/Monitors.cpp +++ b/src/events/Monitors.cpp @@ -79,8 +79,8 @@ void Events::listener_newOutput(wl_listener* listener, void* data) { g_pCompositor->m_lMonitors.push_back(newMonitor); // - addWLSignal(&OUTPUT->events.frame, &g_pCompositor->m_lMonitors.back().listen_monitorFrame, &g_pCompositor->m_lMonitors.back(), "Monitor"); - addWLSignal(&OUTPUT->events.destroy, &g_pCompositor->m_lMonitors.back().listen_monitorDestroy, &g_pCompositor->m_lMonitors.back(), "Monitor"); + g_pCompositor->m_lMonitors.back().hyprListener_monitorFrame.initCallback(&OUTPUT->events.frame, &Events::listener_monitorFrame, &g_pCompositor->m_lMonitors.back()); + g_pCompositor->m_lMonitors.back().hyprListener_monitorDestroy.initCallback(&OUTPUT->events.destroy, &Events::listener_monitorDestroy, &g_pCompositor->m_lMonitors.back()); wlr_output_enable(OUTPUT, 1); if (!wlr_output_commit(OUTPUT)) { @@ -95,8 +95,8 @@ void Events::listener_newOutput(wl_listener* listener, void* data) { Debug::log(LOG, "Added new monitor with name %s at %i,%i with size %ix%i@%i, pointer %x", OUTPUT->name, (int)monitorRule.offset.x, (int)monitorRule.offset.y, (int)monitorRule.resolution.x, (int)monitorRule.resolution.y, (int)monitorRule.refreshRate, OUTPUT); } -void Events::listener_monitorFrame(wl_listener* listener, void* data) { - SMonitor* const PMONITOR = wl_container_of(listener, PMONITOR, listen_monitorFrame); +void Events::listener_monitorFrame(void* owner, void* data) { + SMonitor* const PMONITOR = (SMonitor*)owner; // Hack: only check when monitor number 1 refreshes, saves a bit of resources. // This is for stuff that should be run every frame @@ -125,7 +125,7 @@ void Events::listener_monitorFrame(wl_listener* listener, void* data) { wlr_output_commit(PMONITOR->output); } -void Events::listener_monitorDestroy(wl_listener* listener, void* data) { +void Events::listener_monitorDestroy(void* owner, void* data) { const auto OUTPUT = (wlr_output*)data; SMonitor* pMonitor = nullptr; -- cgit v1.2.3