Have presenter mode hold before first play call

This commit is contained in:
Grant Sanderson 2022-05-03 12:45:16 -07:00
parent 22c5e79f5f
commit a9a151d4ef

View file

@ -145,9 +145,6 @@ class Scene(object):
if self.window: if self.window:
self.window.destroy() self.window.destroy()
self.window = None self.window = None
if self.inside_embed:
self.embed_shell.enable_gui(None)
self.embed_shell.exiter()
def interact(self) -> None: def interact(self) -> None:
# If there is a window, enter a loop # If there is a window, enter a loop
@ -522,6 +519,8 @@ class Scene(object):
def wrapper(self, *args, **kwargs): def wrapper(self, *args, **kwargs):
if self.inside_embed: if self.inside_embed:
self.save_state() self.save_state()
if self.presenter_mode and self.num_plays == 0:
self.hold_loop()
self.update_skipping_status() self.update_skipping_status()
should_write = not self.skip_animations should_write = not self.skip_animations
@ -601,9 +600,7 @@ class Scene(object):
if self.presenter_mode and not self.skip_animations and not ignore_presenter_mode: if self.presenter_mode and not self.skip_animations and not ignore_presenter_mode:
if note: if note:
log.info(note) log.info(note)
while self.hold_on_wait: self.hold_loop()
self.update_frame(dt=1 / self.camera.frame_rate)
self.hold_on_wait = True
else: else:
time_progression = self.get_wait_time_progression(duration, stop_condition) time_progression = self.get_wait_time_progression(duration, stop_condition)
last_t = 0 last_t = 0
@ -617,6 +614,11 @@ class Scene(object):
self.refresh_static_mobjects() self.refresh_static_mobjects()
return self return self
def hold_loop(self):
while self.hold_on_wait:
self.update_frame(dt=1 / self.camera.frame_rate)
self.hold_on_wait = True
def wait_until( def wait_until(
self, self,
stop_condition: Callable[[], bool], stop_condition: Callable[[], bool],