summaryrefslogtreecommitdiff
path: root/src/render/Renderer.cpp
diff options
context:
space:
mode:
authorPhilip Damianik <39028343+pdamianik@users.noreply.github.com>2023-09-10 14:14:27 +0200
committerGitHub <noreply@github.com>2023-09-10 13:14:27 +0100
commit6c855dd6e42603ffc68c199b9647e002c557a205 (patch)
treebd9e74a582433bcfddcca3fa227613e852f61c38 /src/render/Renderer.cpp
parentd490f198a47564805ab0ee122afa77d625661ae0 (diff)
internal: Fix wlr output management (#3234)
Diffstat (limited to 'src/render/Renderer.cpp')
-rw-r--r--src/render/Renderer.cpp21
1 files changed, 9 insertions, 12 deletions
diff --git a/src/render/Renderer.cpp b/src/render/Renderer.cpp
index bff9fab4..789a9ba6 100644
--- a/src/render/Renderer.cpp
+++ b/src/render/Renderer.cpp
@@ -1135,7 +1135,7 @@ void CHyprRenderer::setWindowScanoutMode(CWindow* pWindow) {
void CHyprRenderer::outputMgrApplyTest(wlr_output_configuration_v1* config, bool test) {
wlr_output_configuration_head_v1* head;
- bool noError = true;
+ bool ok = true;
wl_list_for_each(head, &config->heads, link) {
@@ -1160,29 +1160,24 @@ void CHyprRenderer::outputMgrApplyTest(wlr_output_configuration_v1* config, bool
commandForCfg += std::to_string(head->state.custom_mode.width) + "x" + std::to_string(head->state.custom_mode.height) + "@" +
std::to_string(head->state.custom_mode.refresh / 1000.f) + ",";
- commandForCfg += std::to_string(head->state.x) + "x" + std::to_string(head->state.y) + "," + std::to_string(head->state.scale);
+ commandForCfg += std::to_string(head->state.x) + "x" + std::to_string(head->state.y) + "," + std::to_string(head->state.scale) + ",transform," +
+ std::to_string((int)head->state.transform);
if (!test) {
g_pConfigManager->parseKeyword("monitor", commandForCfg, true);
-
- std::string transformStr = std::string(OUTPUT->name) + ",transform," + std::to_string((int)OUTPUT->transform);
-
- const auto PMONITOR = g_pCompositor->getMonitorFromName(OUTPUT->name);
-
- if (!PMONITOR || OUTPUT->transform != PMONITOR->transform)
- g_pConfigManager->parseKeyword("monitor", transformStr);
+ wlr_output_state_set_adaptive_sync_enabled(&OUTPUT->pending, head->state.adaptive_sync_enabled);
}
- noError = wlr_output_test(OUTPUT);
+ ok = wlr_output_test(OUTPUT);
- if (!noError)
+ if (!ok)
break;
}
if (!test)
g_pConfigManager->m_bWantsMonitorReload = true; // for monitor keywords
- if (noError)
+ if (ok)
wlr_output_configuration_v1_send_succeeded(config);
else
wlr_output_configuration_v1_send_failed(config);
@@ -1859,6 +1854,8 @@ bool CHyprRenderer::applyMonitorRule(CMonitor* pMonitor, SMonitorRule* pMonitorR
EMIT_HOOK_EVENT("monitorLayoutChanged", nullptr);
+ Events::listener_change(nullptr, nullptr);
+
return true;
}