diff --git a/manimlib/animation/animation.py b/manimlib/animation/animation.py index 12964670..2d16c891 100644 --- a/manimlib/animation/animation.py +++ b/manimlib/animation/animation.py @@ -25,7 +25,7 @@ class Animation(object): # If 0 < lag_ratio < 1, its applied to each # with lagged start times "lag_ratio": DEFAULT_ANIMATION_LAG_RATIO, - "suspend_mobject_updating": True, + "suspend_mobject_updating": False, } def __init__(self, mobject, **kwargs): diff --git a/manimlib/animation/creation.py b/manimlib/animation/creation.py index 4f6aba64..40ffd235 100644 --- a/manimlib/animation/creation.py +++ b/manimlib/animation/creation.py @@ -110,7 +110,8 @@ class DrawBorderThenFill(Animation): # First time crossing over submob.set_data(outline.data) submob.unlock_data() - submob.lock_matching_data(submob, start) + if not self.mobject.has_updaters: + submob.lock_matching_data(submob, start) submob.needs_new_triangulation = False self.sm_to_index[hash(submob)] = 1 diff --git a/manimlib/mobject/mobject.py b/manimlib/mobject/mobject.py index 37d398e2..e446fe08 100644 --- a/manimlib/mobject/mobject.py +++ b/manimlib/mobject/mobject.py @@ -511,15 +511,16 @@ class Mobject(object): for updater_list in [self.time_based_updaters, self.non_time_updaters]: while update_function in updater_list: updater_list.remove(update_function) + self.refresh_has_updater_status() return self def clear_updaters(self, recurse=True): self.time_based_updaters = [] self.non_time_updaters = [] + self.refresh_has_updater_status() if recurse: for submob in self.submobjects: submob.clear_updaters() - self.suspend_updating(recurse) return self def match_updaters(self, mobject):