Re-init link when removing animation.
authorKristian Høgsberg <krh@redhat.com>
Wed, 11 Feb 2009 00:48:47 +0000 (19:48 -0500)
committerKristian Høgsberg <krh@redhat.com>
Wed, 11 Feb 2009 00:48:47 +0000 (19:48 -0500)
wayland-system-compositor.c

index 384b86d..9ba4ea3 100644 (file)
@@ -673,6 +673,7 @@ surface_destroy(struct wl_client *client,
        struct wlsc_compositor *ec = es->compositor;
 
        wl_list_remove(&es->link);
+       wl_list_remove(&es->animate.link);
        wlsc_surface_destroy(es, ec);
 
        schedule_repaint(ec);
@@ -804,10 +805,12 @@ animate_surface(struct wlsc_animate *animate,
        
        tmp = s->current;
        wlsc_vector_subtract(&tmp, &s->target);
-       if (tmp.x * tmp.x + tmp.y * tmp.y + tmp.z * tmp.z > 0.001)
+       if (tmp.x * tmp.x + tmp.y * tmp.y + tmp.z * tmp.z > 0.001) {
                schedule_repaint(compositor);
-       else
+       } else {
                wl_list_remove(&s->animate.link);
+               wl_list_init(&s->animate.link);
+       }
 }
 
 static void