From 1626707b7f4fd3d2b313e78cb3a41783f072f73b Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Sat, 23 Jul 2022 15:48:08 +0200 Subject: make layerSurfaces into RAII --- src/events/Monitors.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) (limited to 'src/events/Monitors.cpp') diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp index 9604dc69..57da68fc 100644 --- a/src/events/Monitors.cpp +++ b/src/events/Monitors.cpp @@ -72,10 +72,11 @@ void Events::listener_newOutput(wl_listener* listener, void* data) { return; } - SMonitor newMonitor; - newMonitor.output = OUTPUT; - newMonitor.ID = g_pCompositor->getNextAvailableMonitorID(); - newMonitor.szName = OUTPUT->name; + const auto PNEWMONITOR = g_pCompositor->m_vMonitors.emplace_back(std::make_unique()).get(); + + PNEWMONITOR->output = OUTPUT; + PNEWMONITOR->ID = g_pCompositor->getNextAvailableMonitorID(); + PNEWMONITOR->szName = OUTPUT->name; wlr_output_init_render(OUTPUT, g_pCompositor->m_sWLRAllocator, g_pCompositor->m_sWLRRenderer); @@ -86,11 +87,9 @@ void Events::listener_newOutput(wl_listener* listener, void* data) { wlr_output_enable_adaptive_sync(OUTPUT, 1); // create it in the arr - newMonitor.vecPosition = monitorRule.offset; - newMonitor.vecSize = monitorRule.resolution; - newMonitor.refreshRate = monitorRule.refreshRate; - - const auto PNEWMONITOR = g_pCompositor->m_vMonitors.emplace_back(std::make_unique(newMonitor)).get(); + PNEWMONITOR->vecPosition = monitorRule.offset; + PNEWMONITOR->vecSize = monitorRule.resolution; + PNEWMONITOR->refreshRate = monitorRule.refreshRate; PNEWMONITOR->hyprListener_monitorFrame.initCallback(&OUTPUT->events.frame, &Events::listener_monitorFrame, PNEWMONITOR); PNEWMONITOR->hyprListener_monitorDestroy.initCallback(&OUTPUT->events.destroy, &Events::listener_monitorDestroy, PNEWMONITOR); @@ -134,7 +133,7 @@ void Events::listener_newOutput(wl_listener* listener, void* data) { g_pLayoutManager->getCurrentLayout()->recalculateMonitor(PNEWMONITOR->ID); PNEWWORKSPACE->startAnim(true,true,true); } else { - PNEWWORKSPACE = g_pCompositor->m_vWorkspaces.emplace_back(std::make_unique(newMonitor.ID, newDefaultWorkspaceName)).get(); + PNEWWORKSPACE = g_pCompositor->m_vWorkspaces.emplace_back(std::make_unique(PNEWMONITOR->ID, newDefaultWorkspaceName)).get(); // We are required to set the name here immediately wlr_ext_workspace_handle_v1_set_name(PNEWWORKSPACE->m_pWlrHandle, newDefaultWorkspaceName.c_str()); -- cgit v1.2.3