summaryrefslogtreecommitdiff
path: root/src/events/Monitors.cpp
diff options
context:
space:
mode:
authorVaxry <vaxry@vaxry.net>2024-02-14 22:05:36 +0000
committerVaxry <vaxry@vaxry.net>2024-02-14 22:05:41 +0000
commit305b1419c8ff463836324168946bc34417dc0310 (patch)
treeb99facc5a1b33356477778168e012c9a05682d29 /src/events/Monitors.cpp
parentd5950f7719d3c9ec5305208265366df5ce81b6c3 (diff)
renderer: accept custom state requests for fake outputs
Diffstat (limited to 'src/events/Monitors.cpp')
-rw-r--r--src/events/Monitors.cpp16
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) {