compositor: Don't allow setting a NULL cursor without pointer focus
authorKristian Høgsberg <krh@bitplanet.net>
Wed, 1 Aug 2012 13:46:12 +0000 (09:46 -0400)
committerKristian Høgsberg <krh@bitplanet.net>
Wed, 1 Aug 2012 13:58:22 +0000 (09:58 -0400)
src/compositor.c

index 9891b3c..1dd579a 100644 (file)
@@ -2213,15 +2213,14 @@ pointer_set_cursor(struct wl_client *client, struct wl_resource *resource,
                surface = container_of(surface_resource->data,
                                       struct weston_surface, surface);
 
+       if (seat->seat.pointer->focus == NULL)
+               return;
+       if (seat->seat.pointer->focus->resource.client != client)
+               return;
        if (seat->seat.pointer->focus_serial - serial > UINT32_MAX / 2)
                return;
 
        if (surface && surface != seat->sprite) {
-               if (seat->seat.pointer->focus == NULL)
-                       return;
-               if (seat->seat.pointer->focus->resource.client != client)
-                       return;
-
                if (surface->configure) {
                        wl_resource_post_error(&surface->surface.resource,
                                               WL_DISPLAY_ERROR_INVALID_OBJECT,