Skip to content
  • Jonny Lamb's avatar
    animation: ensure repaints are always scheduled during animations · f8bfd058
    Jonny Lamb authored
    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.
    f8bfd058