diff options
| author | Kristian Høgsberg <krh@bitplanet.net> | 2010-08-16 17:46:25 -0400 |
|---|---|---|
| committer | Kristian Høgsberg <krh@bitplanet.net> | 2010-08-16 17:46:25 -0400 |
| commit | f4cb20139279f325420d39eb61817b4c2b861a04 (patch) | |
| tree | 45d4da29c778ab72100d76c1e714c424e9cf6edf /compositor.c | |
| parent | Remove duplicate #define ARRAY_LENGTH (diff) | |
| download | wayland-f4cb20139279f325420d39eb61817b4c2b861a04.tar wayland-f4cb20139279f325420d39eb61817b4c2b861a04.tar.gz wayland-f4cb20139279f325420d39eb61817b4c2b861a04.tar.bz2 wayland-f4cb20139279f325420d39eb61817b4c2b861a04.tar.lz wayland-f4cb20139279f325420d39eb61817b4c2b861a04.tar.xz wayland-f4cb20139279f325420d39eb61817b4c2b861a04.tar.zst wayland-f4cb20139279f325420d39eb61817b4c2b861a04.zip | |
Fix a few bugs in compositor cursor handling
Diffstat (limited to 'compositor.c')
| -rw-r--r-- | compositor.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/compositor.c b/compositor.c index 89fc1a6..00da446 100644 --- a/compositor.c +++ b/compositor.c @@ -914,11 +914,23 @@ input_device_attach(struct wl_client *client, device->pointer_focus->base.client != client) return; + if (buffer == NULL) { + wlsc_input_device_set_pointer_image(device, + WLSC_POINTER_LEFT_PTR); + return; + } + glBindTexture(GL_TEXTURE_2D, device->sprite->texture); glEGLImageTargetTexture2DOES(GL_TEXTURE_2D, buffer->image); device->sprite->visual = buffer->visual; device->hotspot_x = x; device->hotspot_y = y; + + device->sprite->x = device->x - device->hotspot_x; + device->sprite->y = device->y - device->hotspot_y; + wlsc_surface_update_matrix(device->sprite); + + wlsc_compositor_schedule_repaint(device->ec); } const static struct wl_input_device_interface input_device_interface = { |
