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.

Signed-off-by: Jason Ekstrand <[email protected]>
---
 src/compositor.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/src/compositor.c b/src/compositor.c
index a298fb8..342e5e4 100644
--- a/src/compositor.c
+++ b/src/compositor.c
@@ -675,7 +675,8 @@ weston_surface_to_buffer_float(struct weston_surface 
*surface,
        /* 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 @@ weston_surface_to_buffer_rect(struct weston_surface 
*surface,
        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);
 }
-- 
1.9.0

_______________________________________________
wayland-devel mailing list
[email protected]
http://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to