Fix surface coordinate transformation.
diff --git a/wayland-system-compositor.c b/wayland-system-compositor.c
index 2aaa774..a0ab5f9 100644
--- a/wayland-system-compositor.c
+++ b/wayland-system-compositor.c
@@ -861,15 +861,17 @@
 		if (es->map.x <= device->x &&
 		    device->x < es->map.x + es->map.width &&
 		    es->map.y <= device->y &&
-		    device->y < es->map.y + es->map.height)
+		    device->y < es->map.y + es->map.height) {
+			/* Transform to surface coordinates. */
+			*sx = (device->x - es->map.x) * es->width / es->map.width;
+			*sy = (device->y - es->map.y) * es->height / es->map.height;
+
 			return es;
+		}
 
 		es = container_of(es->link.prev,
 				  struct wlsc_surface, link);
 
-		/* Transform to surface coordinates. */
-		*sx = (device->x - es->map.x) * es->width / es->map.width;
-		*sy = (device->y - es->map.y) * es->height / es->map.height;
 	}
 
 	return NULL;