view: Schedule view repaint when changing properties

Whenever a view is moved, we should schedule a repaint for the outputs
the view is on. This avoids users having to do it by hand every time
they change something. There is no change in determinism of behaviour
(e.g. 'I can reconfigure views as often as I like and it won't take
effect until I schedule a repaint' isn't true, because output repaints
might happen for reasons outside your control).

Signed-off-by: Daniel Stone <daniels@collabora.com>
This commit is contained in:
Daniel Stone 2023-07-12 10:10:27 +01:00 committed by Marius Vlad
parent 43b59786e6
commit 259420dde1

View file

@ -1695,6 +1695,8 @@ weston_view_geometry_dirty_internal(struct weston_view *view)
weston_view_geometry_dirty_internal(child);
weston_view_dirty_paint_nodes(view);
weston_view_schedule_repaint(view);
}
WL_EXPORT void
@ -1950,7 +1952,6 @@ weston_view_set_mask(struct weston_view *view,
pixman_region32_init_rect(&view->geometry.scissor, x, y, width, height);
view->geometry.scissor_enabled = true;
weston_view_geometry_dirty(view);
weston_view_schedule_repaint(view);
}
/** Remove the clip mask from a view
@ -1966,7 +1967,6 @@ weston_view_set_mask_infinite(struct weston_view *view)
{
view->geometry.scissor_enabled = false;
weston_view_geometry_dirty(view);
weston_view_schedule_repaint(view);
}
/* Check if view should be displayed