From 9383aaf89ea468fc6eb1aff413bfe456c9aed739 Mon Sep 17 00:00:00 2001 From: Drew DeVault Date: Tue, 8 Aug 2017 11:44:44 -0400 Subject: [PATCH] Accomodate for hotspot in cursor position --- examples/pointer.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/examples/pointer.c b/examples/pointer.c index 6bd91a9e..ef815785 100644 --- a/examples/pointer.c +++ b/examples/pointer.c @@ -48,9 +48,13 @@ static void handle_pointer_motion(struct pointer_state *pstate, state->cur_x += d_x; state->cur_y += d_y; + struct wlr_cursor_image *image = state->cursor->images[0]; + struct output_state *output; wl_list_for_each(output, &pstate->compositor->outputs, link) { - wlr_output_move_cursor(output->output, state->cur_x, state->cur_y); + wlr_output_move_cursor(output->output, + state->cur_x - image->hotspot_x, + state->cur_y - image->hotspot_y); } } @@ -60,9 +64,13 @@ static void handle_pointer_motion_absolute(struct pointer_state *pstate, state->cur_x = x; state->cur_y = y; + struct wlr_cursor_image *image = state->cursor->images[0]; + struct output_state *output; wl_list_for_each(output, &pstate->compositor->outputs, link) { - wlr_output_move_cursor(output->output, state->cur_x, state->cur_y); + wlr_output_move_cursor(output->output, + state->cur_x - image->hotspot_x, + state->cur_y - image->hotspot_y); } }