Use attach x,y when computing hotspot, set sx,sy in surface_attach
This commit is contained in:
parent
008e1d596d
commit
c4c948c5d9
|
@ -193,7 +193,8 @@ static void handle_cursor_surface_commit(struct wl_listener *listener,
|
||||||
int32_t stride = wl_shm_buffer_get_stride(buffer);
|
int32_t stride = wl_shm_buffer_get_stride(buffer);
|
||||||
wl_shm_buffer_begin_access(buffer);
|
wl_shm_buffer_begin_access(buffer);
|
||||||
wlr_output_set_cursor(output, buffer_data, stride/4, width, height,
|
wlr_output_set_cursor(output, buffer_data, stride/4, width, height,
|
||||||
output->cursor.hotspot_x, output->cursor.hotspot_y);
|
output->cursor.hotspot_x - surface->current->sx,
|
||||||
|
output->cursor.hotspot_y - surface->current->sy);
|
||||||
wl_shm_buffer_end_access(buffer);
|
wl_shm_buffer_end_access(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -51,6 +51,8 @@ static void surface_attach(struct wl_client *client,
|
||||||
struct wlr_surface *surface = wl_resource_get_user_data(resource);
|
struct wlr_surface *surface = wl_resource_get_user_data(resource);
|
||||||
|
|
||||||
surface->pending->invalid |= WLR_SURFACE_INVALID_BUFFER;
|
surface->pending->invalid |= WLR_SURFACE_INVALID_BUFFER;
|
||||||
|
surface->pending->sx = sx;
|
||||||
|
surface->pending->sy = sy;
|
||||||
wlr_surface_state_reset_buffer(surface->pending);
|
wlr_surface_state_reset_buffer(surface->pending);
|
||||||
wlr_surface_state_set_buffer(surface->pending, buffer);
|
wlr_surface_state_set_buffer(surface->pending, buffer);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue