diff --git a/src/compositor.c b/src/compositor.c index 45c82c98..83ec3edc 100644 --- a/src/compositor.c +++ b/src/compositor.c @@ -424,15 +424,22 @@ weston_surface_update_transform(struct weston_surface *surface) weston_compositor_schedule_repaint(surface->compositor); } +WL_EXPORT void +weston_surface_to_global_float(struct weston_surface *surface, + int32_t sx, int32_t sy, GLfloat *x, GLfloat *y) +{ + weston_surface_update_transform(surface); + + surface_to_global_float(surface, sx, sy, x, y); +} + WL_EXPORT void weston_surface_to_global(struct weston_surface *surface, int32_t sx, int32_t sy, int32_t *x, int32_t *y) { GLfloat xf, yf; - weston_surface_update_transform(surface); - - surface_to_global_float(surface, sx, sy, &xf, &yf); + weston_surface_to_global_float(surface, sx, sy, &xf, &yf); *x = floorf(xf); *y = floorf(yf); } diff --git a/src/compositor.h b/src/compositor.h index a88a6bab..58bae0f4 100644 --- a/src/compositor.h +++ b/src/compositor.h @@ -342,6 +342,9 @@ weston_surface_update_transform(struct weston_surface *surface); void weston_surface_to_global(struct weston_surface *surface, int32_t sx, int32_t sy, int32_t *x, int32_t *y); +void +weston_surface_to_global_float(struct weston_surface *surface, + int32_t sx, int32_t sy, GLfloat *x, GLfloat *y); void weston_surface_from_global(struct weston_surface *surface,