Use the correct width/height when transforming surfaces with viewports.

Previously, because of the wrong width/height,
weston_surface_to_buffer_* would return the wrong values when
wl_viewport was used in combination with wl_surface.set_buffer_transform.

Reviewed-by: Pekka Paalanen <ppaalanen@gmail.com>
Signed-off-by: Jason Ekstrand <jason@jlekstrand.net>
diff --git a/src/compositor.c b/src/compositor.c
index fd2decb..a35c578 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -675,7 +675,8 @@
 	/* first transform coordinates if the scaler is set */
 	scaler_surface_to_buffer(surface, sx, sy, bx, by);
 
-	weston_transformed_coord(surface->width, surface->height,
+	weston_transformed_coord(surface->width_from_buffer,
+				 surface->height_from_buffer,
 				 vp->buffer.transform, vp->buffer.scale,
 				 *bx, *by, bx, by);
 }
@@ -709,7 +710,8 @@
 	rect.x2 = floorf(xf);
 	rect.y2 = floorf(yf);
 
-	return weston_transformed_rect(surface->width, surface->height,
+	return weston_transformed_rect(surface->width_from_buffer,
+				       surface->height_from_buffer,
 				       vp->buffer.transform, vp->buffer.scale,
 				       rect);
 }