output: set damage ring bounds to pixel values
Fixes:
@@ -840,8 +840,9 @@ static void handle_mode(struct wl_listener *listener, void *data) {
arrange_output(output);
transaction_commit_dirty();
- wlr_damage_ring_set_bounds(&output->damage_ring,
- output->width, output->height);
+ int width, height;
+ wlr_output_transformed_resolution(output->wlr_output, &width, &height);
+ wlr_damage_ring_set_bounds(&output->damage_ring, width, height);
wlr_output_schedule_frame(output->wlr_output);
update_output_manager_config(output->server);
@@ -872,11 +873,10 @@ static void handle_commit(struct wl_listener *listener, void *data) {
update_output_manager_config(output->server);
}
- if (event->committed & (WLR_OUTPUT_STATE_MODE |
- WLR_OUTPUT_STATE_TRANSFORM |
- WLR_OUTPUT_STATE_SCALE)) {
- wlr_damage_ring_set_bounds(&output->damage_ring,
- output->width, output->height);
+ if (event->committed & (WLR_OUTPUT_STATE_MODE | WLR_OUTPUT_STATE_TRANSFORM)) {
+ int width, height;
+ wlr_output_transformed_resolution(output->wlr_output, &width, &height);
+ wlr_damage_ring_set_bounds(&output->damage_ring, width, height);
wlr_output_schedule_frame(output->wlr_output);
}
}
