diff options
| author | Vaxry <vaxry@vaxry.net> | 2024-02-14 22:05:36 +0000 |
|---|---|---|
| committer | Vaxry <vaxry@vaxry.net> | 2024-02-14 22:05:41 +0000 |
| commit | 305b1419c8ff463836324168946bc34417dc0310 (patch) | |
| tree | b99facc5a1b33356477778168e012c9a05682d29 /src/events/Monitors.cpp | |
| parent | d5950f7719d3c9ec5305208265366df5ce81b6c3 (diff) | |
renderer: accept custom state requests for fake outputs
Diffstat (limited to 'src/events/Monitors.cpp')
| -rw-r--r-- | src/events/Monitors.cpp | 16 |
1 files changed, 13 insertions, 3 deletions
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) { |
