From f82fd47016628e8bcdcba3aab506a919fe8c49d8 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Tue, 6 Sep 2016 11:50:50 +0200 Subject: [PATCH] xf86Cursor: Fix xf86_crtc_rotate_coord using width/height wrongly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit xf86_crtc_rotate_coord should be the exact inverse operation of xf86_crtc_rotate_coord_back, but when calculating x / y for 90 / 270 degrees rotation it was using height to calculate x / width to calculate y, instead of the otherway around. This was likely not noticed before since xf86_crtc_rotate_coord until now was only used with cursor_info->MaxWidth and cursor_info->MaxHeight, which are usally the same. Signed-off-by: Hans de Goede Reviewed-by: Michel Dänzer --- hw/xfree86/modes/xf86Cursors.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c index d1e3302b0..c83653457 100644 --- a/hw/xfree86/modes/xf86Cursors.c +++ b/hw/xfree86/modes/xf86Cursors.c @@ -74,7 +74,7 @@ xf86_crtc_rotate_coord(Rotation rotation, break; case RR_Rotate_90: t = x_dst; - x_dst = height - y_dst - 1; + x_dst = width - y_dst - 1; y_dst = t; break; case RR_Rotate_180: @@ -84,7 +84,7 @@ xf86_crtc_rotate_coord(Rotation rotation, case RR_Rotate_270: t = x_dst; x_dst = y_dst; - y_dst = width - t - 1; + y_dst = height - t - 1; break; } if (rotation & RR_Reflect_X)