Skip to content

Automatically schedule view repaints on property changes

Daniel Stone requested to merge daniels/weston:stop-scheduling-repaints into main

Whenever we change anything related to a view, make sure that repaints get scheduled at the appropriate point. This turns the old pattern of:

struct weston_view *view;

view->alpha = 0.3f;
view->transform.pos.x = 100;
view->transform.pos.y = 200;
weston_layer_entry_remove(&view->link);
weston_layer_entry_insert(&layer->view_list, &view->link);
weston_view_geometry_dirty(view);
weston_view_update_transform(view); /* maybe?! */
weston_view_schedule_repaint(view); /* errr */

into:

weston_view_set_alpha(view, 0.3f);
weston_view_set_pos(view, weston_coord_global(100.0, 200.0));
weston_view_move_to_layer(view, &layer->view_list);

All of the machinery to dirty geometry, update transform, schedule repaint, etc, is just internal details that users should really not be forced to care about.

I didn't convert every single user - notably not ivi-shell - but I'd love to unexport most of these functions before 13.

Merge request reports