weston-test: Always update transform when moving surface
authorKristian Høgsberg <krh@bitplanet.net>
Thu, 14 Nov 2013 05:55:57 +0000 (21:55 -0800)
committerKristian Høgsberg <krh@bitplanet.net>
Thu, 14 Nov 2013 05:55:57 +0000 (21:55 -0800)
weston_view_update_transform() will post damage in the old and new
positions of the view and thus make sure we always repaint properly.
In particular, in bug 66133, the test suite moves the surface off
any output and weston_surface_schedule_repaint() in commit fails to
do anything, since the surface is not on any output.

After changing view geometry, we have to either call
weston_compositor_schedule_repaint(), which is what shell.c typically
does, though that repaints all outputs, or call
weston_view_update_transform() to force update the transformation
and queue repaints on affected outputs.

https://bugs.freedesktop.org/show_bug.cgi?id=66133

tests/weston-test.c

index 5f341d8..0536be4 100644 (file)
@@ -88,8 +88,7 @@ test_surface_configure(struct weston_surface *surface, int32_t sx, int32_t sy, i
                              test_surface->x, test_surface->y,
                              width, height);
 
-       if (!weston_view_is_mapped(test_surface->view))
-               weston_view_update_transform(test_surface->view);
+       weston_view_update_transform(test_surface->view);
 }
 
 static void