From 5fa916e6f2a7dd2a7a900a8311679b646a022acc Mon Sep 17 00:00:00 2001 From: vaxerski <43317083+vaxerski@users.noreply.github.com> Date: Thu, 21 Apr 2022 18:11:28 +0200 Subject: fix monitor reload crash --- src/render/Renderer.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) (limited to 'src/render/Renderer.cpp') diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp index 3969b7b4..7b8a0e40 100644 --- a/src/render/Renderer.cpp +++ b/src/render/Renderer.cpp @@ -494,6 +494,8 @@ DAMAGETRACKINGMODES CHyprRenderer::damageTrackingModeFromStr(const std::string& void CHyprRenderer::applyMonitorRule(SMonitor* pMonitor, SMonitorRule* pMonitorRule, bool force) { + Debug::log(LOG, "Applying monitor rule for %s", pMonitor->szName.c_str()); + // Check if the rule isn't already applied if (!force && DELTALESSTHAN(pMonitor->vecSize.x, pMonitorRule->resolution.x, 1) && DELTALESSTHAN(pMonitor->vecSize.y, pMonitorRule->resolution.y, 1) && DELTALESSTHAN(pMonitor->refreshRate, pMonitorRule->refreshRate, 1) && pMonitor->scale == pMonitorRule->scale) { Debug::log(LOG, "Not applying a new rule to %s because it's already applied!", pMonitor->szName.c_str()); @@ -563,4 +565,19 @@ void CHyprRenderer::applyMonitorRule(SMonitor* pMonitor, SMonitorRule* pMonitorR Debug::log(ERR, "Couldn't commit output named %s", pMonitor->output->name); return; } -} \ No newline at end of file + + wlr_output_layout_add(g_pCompositor->m_sWLROutputLayout, pMonitor->output, (int)pMonitorRule->offset.x, (int)pMonitorRule->offset.y); + + //wlr_output_damage_add_whole(pMonitor->damage); + + wlr_output_enable(pMonitor->output, true); + + // updato wlroots + Events::listener_change(nullptr, nullptr); + + // updato us + arrangeLayersForMonitor(pMonitor->ID); + + // frame skip + pMonitor->needsFrameSkip = true; +} -- cgit v1.2.3