aboutsummaryrefslogtreecommitdiff
path: root/backend/x11/output.c
diff options
context:
space:
mode:
authorSimon Ser <contact@emersion.fr>2023-06-22 15:48:35 +0200
committerAlexander Orzechowski <alex@ozal.ski>2023-06-23 18:07:26 +0000
commitbe050979684ae8779a56e4b0166cfb21d1935d35 (patch)
treec4a77ff1363875abb59508b3b3a5cdff28dbb895 /backend/x11/output.c
parent8a5b5e6f28dae650df36a271213655b8bdf52dbf (diff)
output: add wlr_output_state_init()
This changes the semantics of wlr_output_state. Instead of having fields with uninitialized memory when missing from the committed bitflag, all fields are always initialized (and maybe NULL/empty), just like we do in wlr_surface_state. This reduces the chances of footguns when reading a field, and removes the need to check for the committed bitfield everywhere. A new wlr_output_state_init() function takes care of initializing the Pixman region.
Diffstat (limited to 'backend/x11/output.c')
-rw-r--r--backend/x11/output.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/backend/x11/output.c b/backend/x11/output.c
index 517ea85b..0fd9b9c5 100644
--- a/backend/x11/output.c
+++ b/backend/x11/output.c
@@ -623,12 +623,11 @@ void handle_x11_configure_notify(struct wlr_x11_output *output,
return;
}
- struct wlr_output_state state = {
- .committed = WLR_OUTPUT_STATE_MODE,
- .mode_type = WLR_OUTPUT_STATE_MODE_CUSTOM,
- .custom_mode = { .width = ev->width, .height = ev->height },
- };
+ struct wlr_output_state state;
+ wlr_output_state_init(&state);
+ wlr_output_state_set_custom_mode(&state, ev->width, ev->height, 0);
wlr_output_send_request_state(&output->wlr_output, &state);
+ wlr_output_state_finish(&state);
}
bool wlr_output_is_x11(struct wlr_output *wlr_output) {