diff options
author | Simon Ser <contact@emersion.fr> | 2021-03-11 09:49:38 +0100 |
---|---|---|
committer | Simon Ser <contact@emersion.fr> | 2021-03-11 22:52:38 +0100 |
commit | 44fa2c4b49ced30a69e86a2ed78dd9bf62e0fbb3 (patch) | |
tree | 805046b08c734400d1f7c2dfd12c559812361a68 /backend/x11 | |
parent | 9601a2abf024fb8ac400c0df178bb41ec9e5d215 (diff) |
output: fix transform matrix for 90/270 rotations
We need to adjust the second translation depending on the transform
we applied.
Fixes: 9601a2abf024 ("output: improve transform matrix calculation"
Closes: https://github.com/swaywm/wlroots/issues/2774
Diffstat (limited to 'backend/x11')
-rw-r--r-- | backend/x11/output.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/backend/x11/output.c b/backend/x11/output.c index 406185e3..0d045ff4 100644 --- a/backend/x11/output.c +++ b/backend/x11/output.c @@ -418,9 +418,13 @@ static bool output_cursor_to_picture(struct wlr_x11_output *output, float output_matrix[9]; wlr_matrix_identity(output_matrix); if (output->wlr_output.transform != WL_OUTPUT_TRANSFORM_NORMAL) { + struct wlr_box tr_size = { .width = width, .height = height }; + wlr_box_transform(&tr_size, &tr_size, output->wlr_output.transform, 0, 0); + wlr_matrix_translate(output_matrix, width / 2.0, height / 2.0); wlr_matrix_transform(output_matrix, output->wlr_output.transform); - wlr_matrix_translate(output_matrix, - width / 2.0, - height / 2.0); + wlr_matrix_translate(output_matrix, + - tr_size.width / 2.0, - tr_size.height / 2.0); } float matrix[9]; |