diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp index 211562b0..6484f4d1 100644 --- a/src/events/Monitors.cpp +++ b/src/events/Monitors.cpp @@ -286,7 +286,8 @@ void Events::listener_monitorFrame(void* owner, void* data) { pixman_region32_fini(&frameDamage); pixman_region32_fini(&damage); - wlr_output_commit(PMONITOR->output); + if (!wlr_output_commit(PMONITOR->output)) + return; if (*PDAMAGEBLINK || *PNOVFR) g_pCompositor->scheduleFrameForMonitor(PMONITOR); diff --git a/src/helpers/Monitor.cpp b/src/helpers/Monitor.cpp index 509f292d..ab04bcbe 100644 --- a/src/helpers/Monitor.cpp +++ b/src/helpers/Monitor.cpp @@ -65,6 +65,8 @@ void CMonitor::onConnect(bool noRule) { } if (!m_bRenderingInitPassed) { + output->allocator = nullptr; + output->renderer = nullptr; wlr_output_init_render(output, g_pCompositor->m_sWLRAllocator, g_pCompositor->m_sWLRRenderer); m_bRenderingInitPassed = true; } @@ -356,4 +358,4 @@ void CMonitor::setMirror(const std::string& mirrorOf) { g_pCompositor->m_pLastMonitor = g_pCompositor->m_vMonitors.front().get(); } -} \ No newline at end of file +}