compositor: Always allow owner of pointer surface to change the hotspot

Make pointer_set_cursor() succeed if a client that doesn't have pointer
focus but is the owner of the current pointer surface calls it.
diff --git a/src/compositor.c b/src/compositor.c
index df39274..bdcc2cd 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -2173,22 +2173,26 @@
 	struct weston_seat *seat = resource->data;
 	struct weston_surface *surface = NULL;
 
-	if (serial < seat->seat.pointer->focus_serial)
-		return;
-	if (seat->seat.pointer->focus == NULL)
-		return;
-	if (seat->seat.pointer->focus->resource.client != client)
-		return;
-
 	if (surface_resource)
 		surface = container_of(surface_resource->data,
 				       struct weston_surface, surface);
 
-	if (surface && surface != seat->sprite && surface->configure) {
-		wl_resource_post_error(&surface->surface.resource,
-				       WL_DISPLAY_ERROR_INVALID_OBJECT,
-				       "surface->configure already set");
+	if (serial < seat->seat.pointer->focus_serial)
 		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,
+					       "surface->configure already "
+					       "set");
+			return;
+		}
 	}
 
 	if (seat->sprite)