summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--hw/xfree86/modes/xf86Cursors.c9
-rw-r--r--randr/rrtransform.c28
2 files changed, 20 insertions, 17 deletions
diff --git a/hw/xfree86/modes/xf86Cursors.c b/hw/xfree86/modes/xf86Cursors.c
index 038f1c89c..6b2ae97d4 100644
--- a/hw/xfree86/modes/xf86Cursors.c
+++ b/hw/xfree86/modes/xf86Cursors.c
@@ -325,10 +325,13 @@ xf86_crtc_set_cursor_position (xf86CrtcPtr crtc, int x, int y)
xf86CursorScreenKey);
struct pict_f_vector v;
- v.v[0] = x + ScreenPriv->HotX; v.v[1] = y + ScreenPriv->HotY; v.v[2] = 1;
+ v.v[0] = (x + ScreenPriv->HotX) + 0.5;
+ v.v[1] = (y + ScreenPriv->HotY) + 0.5;
+ v.v[2] = 1;
pixman_f_transform_point (&crtc->f_framebuffer_to_crtc, &v);
- x = floor (v.v[0] + 0.5);
- y = floor (v.v[1] + 0.5);
+ /* cursor will have 0.5 added to it already so floor is sufficent */
+ x = floor (v.v[0]);
+ y = floor (v.v[1]);
/*
* Transform position of cursor upper left corner
*/
diff --git a/randr/rrtransform.c b/randr/rrtransform.c
index a470e1e75..e1620498b 100644
--- a/randr/rrtransform.c
+++ b/randr/rrtransform.c
@@ -183,21 +183,21 @@ RRTransformCompute (int x,
break;
case RR_Rotate_90:
f_rot_cos = 0; f_rot_sin = 1;
- f_rot_dx = height-1; f_rot_dy = 0;
+ f_rot_dx = height; f_rot_dy = 0;
rot_cos = F ( 0); rot_sin = F ( 1);
- rot_dx = F (height-1); rot_dy = F (0);
+ rot_dx = F ( height); rot_dy = F (0);
break;
case RR_Rotate_180:
f_rot_cos = -1; f_rot_sin = 0;
- f_rot_dx = width - 1; f_rot_dy = height - 1;
+ f_rot_dx = width; f_rot_dy = height;
rot_cos = F (-1); rot_sin = F ( 0);
- rot_dx = F (width-1); rot_dy = F ( height-1);
+ rot_dx = F (width); rot_dy = F ( height);
break;
case RR_Rotate_270:
f_rot_cos = 0; f_rot_sin = -1;
- f_rot_dx = 0; f_rot_dy = width-1;
+ f_rot_dx = 0; f_rot_dy = width;
rot_cos = F ( 0); rot_sin = F (-1);
- rot_dx = F ( 0); rot_dy = F ( width-1);
+ rot_dx = F ( 0); rot_dy = F ( width);
break;
}
@@ -220,11 +220,11 @@ RRTransformCompute (int x,
f_scale_x = -1;
scale_x = F(-1);
if (rotation & (RR_Rotate_0|RR_Rotate_180)) {
- f_scale_dx = width-1;
- scale_dx = F(width-1);
+ f_scale_dx = width;
+ scale_dx = F(width);
} else {
- f_scale_dx = height-1;
- scale_dx = F(height-1);
+ f_scale_dx = height;
+ scale_dx = F(height);
}
}
if (rotation & RR_Reflect_Y)
@@ -232,11 +232,11 @@ RRTransformCompute (int x,
f_scale_y = -1;
scale_y = F(-1);
if (rotation & (RR_Rotate_0|RR_Rotate_180)) {
- f_scale_dy = height-1;
- scale_dy = F(height-1);
+ f_scale_dy = height;
+ scale_dy = F(height);
} else {
- f_scale_dy = width-1;
- scale_dy = F(width-1);
+ f_scale_dy = width;
+ scale_dy = F(width);
}
}