[PATCH weston] compositor-drm: fix hw cursor positioning
Pekka Paalanen
ppaalanen at gmail.com
Fri Nov 27 04:20:58 PST 2015
From: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
Fix a regression introduced by be428b3825043cbcc676d2526fe6213bea7f676a
which accidentally removed the global-to-output space conversion.
Signed-off-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
Cc: Derek Foreman <derekf at osg.samsung.com>
Cc: Daniel Stone <daniels at collabora.com>
---
src/compositor-drm.c | 7 +++++++
1 file changed, 7 insertions(+)
Hi Derek,
if you want to fix this with some matrix stuff instead, that would be
cool. This fixes my use case at least.
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 6575847..4f9bbaf 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -1196,6 +1196,13 @@ drm_output_set_cursor(struct drm_output *output)
}
weston_view_to_global_float(ev, 0, 0, &x, &y);
+
+ /* From global to output space, output transform is guaranteed to be
+ * NORMAL by drm_output_prepare_cursor_view().
+ */
+ x = (x - output->base.x) * output->base.current_scale;
+ y = (y - output->base.y) * output->base.current_scale;
+
if (output->cursor_plane.x != x || output->cursor_plane.y != y) {
if (drmModeMoveCursor(b->drm.fd, output->crtc_id, x, y)) {
weston_log("failed to move cursor: %m\n");
--
2.4.10
More information about the wayland-devel
mailing list