From 305b1419c8ff463836324168946bc34417dc0310 Mon Sep 17 00:00:00 2001 From: Vaxry Date: Wed, 14 Feb 2024 22:05:36 +0000 Subject: renderer: accept custom state requests for fake outputs --- src/events/Monitors.cpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'src/events/Monitors.cpp') diff --git a/src/events/Monitors.cpp b/src/events/Monitors.cpp index ddbc81f7..f54c2d37 100644 --- a/src/events/Monitors.cpp +++ b/src/events/Monitors.cpp @@ -209,10 +209,20 @@ void Events::listener_monitorDestroy(void* owner, void* data) { } void Events::listener_monitorStateRequest(void* owner, void* data) { - //const auto PMONITOR = (CMonitor*)owner; - //const auto E = (wlr_output_event_request_state*)data; + const auto PMONITOR = (CMonitor*)owner; + const auto E = (wlr_output_event_request_state*)data; + + if (!PMONITOR->createdByUser) + return; + + const auto SIZE = E->state->mode ? Vector2D{E->state->mode->width, E->state->mode->height} : Vector2D{E->state->custom_mode.width, E->state->custom_mode.height}; + + PMONITOR->forceSize = SIZE; + + SMonitorRule rule = PMONITOR->activeMonitorRule; + rule.resolution = SIZE; - // TODO: maybe don't ignore? + g_pHyprRenderer->applyMonitorRule(PMONITOR, &rule); } void Events::listener_monitorDamage(void* owner, void* data) { -- cgit v1.2.3