Commit f8bfd058 authored by Committed by Kristian Høgsberg
animation: ensure repaints are always scheduled during animations
Animations are run off the repaint cycle so if there's nothing to repaint, an animation will stop running. This is usually not a problem as each frame function of an animation causes something to change and therefore a repaint to happen. This patch helps detect when the animation isn't in said case and triggers a repaint to keep the animation running. This problem was found by using weston_move_scale_run() to move a view onscreen from completely off. The very first time the animation frame function was called the progress wasn't enough to move it into view. The compositor saw there was nothing to repaint and stopped doing anything else. When something else (like a pointer move) forced a redraw, the view's position was very much onscreen and jumped into view in an ugly way.
Showing with 16 additions and 0 deletions