This way we map the surface if it currently isn't mapped and avoid
duplicating some of the code already in pointer_cursor_surface_configure().
Without this, the cursor code relied on a wl_surface.attach() to show the
new pointer surface. If we're not changing the cursor buffer, we don't
get that, but we still need to map the cursor.
surface->configure = pointer_cursor_surface_configure;
surface->private = seat;
- empty_region(&surface->input);
-
seat->sprite = surface;
seat->hotspot_x = x;
seat->hotspot_y = y;
- weston_surface_set_position(surface,
- wl_fixed_to_int(seat->seat.pointer->x) - x,
- wl_fixed_to_int(seat->seat.pointer->y) - y);
+ if (surface->buffer)
+ pointer_cursor_surface_configure(surface, 0, 0);
}
static const struct wl_pointer_interface pointer_interface = {