mirror of
https://github.com/swaywm/sway.git
synced 2024-11-22 07:51:28 +00:00
Save transform during transaction
Closes: https://github.com/swaywm/sway/issues/5412
This commit is contained in:
parent
f7e050c58f
commit
e3e548a648
|
@ -59,6 +59,7 @@ struct sway_saved_buffer {
|
||||||
struct wlr_client_buffer *buffer;
|
struct wlr_client_buffer *buffer;
|
||||||
int x, y;
|
int x, y;
|
||||||
int width, height;
|
int width, height;
|
||||||
|
enum wl_output_transform transform;
|
||||||
struct wl_list link; // sway_view::saved_buffers
|
struct wl_list link; // sway_view::saved_buffers
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -312,7 +312,8 @@ static void render_saved_view(struct sway_view *view,
|
||||||
scale_box(&box, wlr_output->scale);
|
scale_box(&box, wlr_output->scale);
|
||||||
|
|
||||||
float matrix[9];
|
float matrix[9];
|
||||||
wlr_matrix_project_box(matrix, &box, WL_OUTPUT_TRANSFORM_NORMAL, 0,
|
enum wl_output_transform transform = wlr_output_transform_invert(saved_buf->transform);
|
||||||
|
wlr_matrix_project_box(matrix, &box, transform, 0,
|
||||||
wlr_output->transform_matrix);
|
wlr_output->transform_matrix);
|
||||||
|
|
||||||
render_texture(wlr_output, damage, saved_buf->buffer->texture,
|
render_texture(wlr_output, damage, saved_buf->buffer->texture,
|
||||||
|
|
|
@ -1199,6 +1199,7 @@ static void view_save_buffer_iterator(struct wlr_surface *surface,
|
||||||
saved_buffer->height = surface->current.height;
|
saved_buffer->height = surface->current.height;
|
||||||
saved_buffer->x = sx;
|
saved_buffer->x = sx;
|
||||||
saved_buffer->y = sy;
|
saved_buffer->y = sy;
|
||||||
|
saved_buffer->transform = surface->current.transform;
|
||||||
wl_list_insert(&view->saved_buffers, &saved_buffer->link);
|
wl_list_insert(&view->saved_buffers, &saved_buffer->link);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue