[weston v2 8/8] shell: Fix calculation of center point in surface rotation

Tomeu Vizoso tomeu at tomeuvizoso.net
Wed Jul 3 06:58:22 PDT 2013


From: Louis-Francis Ratté-Boulianne <lfrb at collabora.com>

Make sure the center point of a rotation is not rounded to an
integer. It makes the calculation consistent with others in the
shell. It also ensures surfaces rotated 180 degrees are at the
exact same place.
---
 src/shell.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/shell.c b/src/shell.c
index cadcb55..0ab7fe7 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -3133,8 +3133,8 @@ surface_rotate(struct shell_surface *surface, struct weston_seat *seat)
 		return;
 
 	weston_surface_to_global_float(surface->surface,
-				       surface->surface->geometry.width / 2,
-				       surface->surface->geometry.height / 2,
+				       surface->surface->geometry.width * 0.5f,
+				       surface->surface->geometry.height * 0.5f,
 				       &rotate->center.x, &rotate->center.y);
 
 	dx = wl_fixed_to_double(seat->pointer->x) - rotate->center.x;
-- 
1.8.3.1



More information about the wayland-devel mailing list