|
|
@ -2275,20 +2275,22 @@ static const struct wl_data_device_listener data_device_listener = { |
|
|
|
}; |
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
void |
|
|
|
void |
|
|
|
input_set_pointer_image(struct input *input, int pointer) |
|
|
|
input_set_pointer_image_index(struct input *input, int pointer, int index) |
|
|
|
{ |
|
|
|
{ |
|
|
|
struct wl_buffer *buffer; |
|
|
|
struct wl_buffer *buffer; |
|
|
|
struct wl_cursor *cursor; |
|
|
|
struct wl_cursor *cursor; |
|
|
|
struct wl_cursor_image *image; |
|
|
|
struct wl_cursor_image *image; |
|
|
|
|
|
|
|
|
|
|
|
if (pointer == input->current_cursor) |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
cursor = input->display->cursors[pointer]; |
|
|
|
cursor = input->display->cursors[pointer]; |
|
|
|
if (!cursor) |
|
|
|
if (!cursor) |
|
|
|
return; |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
image = cursor->images[0]; |
|
|
|
if (index >= (int) cursor->image_count) { |
|
|
|
|
|
|
|
fprintf(stderr, "cursor index out of range\n"); |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
image = cursor->images[index]; |
|
|
|
buffer = wl_cursor_image_get_buffer(image); |
|
|
|
buffer = wl_cursor_image_get_buffer(image); |
|
|
|
if (!buffer) |
|
|
|
if (!buffer) |
|
|
|
return; |
|
|
|
return; |
|
|
@ -2298,6 +2300,15 @@ input_set_pointer_image(struct input *input, int pointer) |
|
|
|
buffer, image->hotspot_x, image->hotspot_y); |
|
|
|
buffer, image->hotspot_x, image->hotspot_y); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void |
|
|
|
|
|
|
|
input_set_pointer_image(struct input *input, int pointer) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (pointer == input->current_cursor) |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
input_set_pointer_image_index(input, pointer, 0); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
struct wl_data_device * |
|
|
|
struct wl_data_device * |
|
|
|
input_get_data_device(struct input *input) |
|
|
|
input_get_data_device(struct input *input) |
|
|
|
{ |
|
|
|
{ |
|
|
|