From f4cb20139279f325420d39eb61817b4c2b861a04 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kristian=20H=C3=B8gsberg?= Date: Mon, 16 Aug 2010 17:46:25 -0400 Subject: [PATCH] Fix a few bugs in compositor cursor handling --- compositor.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/compositor.c b/compositor.c index 89fc1a61..00da4462 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 = {