Explorar o código

fix runaway controls task

David Rose %!s(int64=17) %!d(string=hai) anos
pai
achega
d452b4dbf6

+ 4 - 1
panda/src/framework/windowFramework.cxx

@@ -1302,7 +1302,8 @@ create_anim_controls() {
   setup_shuttle_button("4", 2, st_play_button);
   setup_shuttle_button(":", 3, st_forward_button);
 
-  _panda_framework->get_task_mgr().add(new GenericAsyncTask("controls", st_update_anim_controls, (void *)this));
+  _update_anim_controls_task = new GenericAsyncTask("controls", st_update_anim_controls, (void *)this);
+  _panda_framework->get_task_mgr().add(_update_anim_controls_task);
 }
 
 ////////////////////////////////////////////////////////////////////
@@ -1316,6 +1317,8 @@ destroy_anim_controls() {
     _anim_controls_group.remove_node();
 
     _panda_framework->get_event_handler().remove_hooks_with((void *)this);
+    _panda_framework->get_task_mgr().remove(_update_anim_controls_task);
+    _update_anim_controls_task.clear();
   }
 }
 

+ 1 - 0
panda/src/framework/windowFramework.h

@@ -175,6 +175,7 @@ private:
   PT(PGSliderBar) _anim_slider;
   PT(PGSliderBar) _play_rate_slider;
   PT(TextNode) _frame_number;
+  PT(GenericAsyncTask) _update_anim_controls_task;
 
   NodePath _mouse;
   PT(Trackball) _trackball;