# HG changeset patch # User John W. Eaton # Date 1260944740 18000 # Node ID 1300d9ced492c95681c09f44e748ec1dd6f3ba2d # Parent 2b008f1d3794ad126c3112d545faeb9f57530de2 F__init_fltk__: add __remove_fltk__ to atexit function list diff -r 2b008f1d3794 -r 1300d9ced492 src/ChangeLog --- a/src/ChangeLog Tue Dec 15 16:02:48 2009 -0500 +++ b/src/ChangeLog Wed Dec 16 01:25:40 2009 -0500 @@ -1,3 +1,9 @@ +2009-12-16 John W. Eaton + + * DLD-FUNCTIONS/fltk_backend.cc (F__init_fltk__): + Add __remove_fltk__ to the list of atexit functions. + (F__remove_fltk__): Wait fltk_maxtime instead of 10 seconds. + 2009-12-15 John W. Eaton * toplev.cc (do_goto_frame_relative): Stop searching at top diff -r 2b008f1d3794 -r 1300d9ced492 src/DLD-FUNCTIONS/fltk_backend.cc --- a/src/DLD-FUNCTIONS/fltk_backend.cc Tue Dec 15 16:02:48 2009 -0500 +++ b/src/DLD-FUNCTIONS/fltk_backend.cc Wed Dec 16 01:25:40 2009 -0500 @@ -63,6 +63,7 @@ #include "gl2ps-renderer.h" #include "graphics.h" #include "parse.h" +#include "toplev.h" #include "variables.h" #define FLTK_BACKEND_NAME "fltk" @@ -1005,6 +1006,8 @@ DEFUN_DLD (__init_fltk__, , , "") { + static bool remove_fltk_registered = false; + if (! backend_registered) { mlock (); @@ -1015,6 +1018,13 @@ octave_value_list args; args(0) = "__fltk_redraw__"; feval ("add_input_event_hook", args, 0); + + if (! remove_fltk_registered) + { + octave_add_atexit_function ("__remove_fltk__"); + + remove_fltk_registered = true; + } } octave_value retval; @@ -1039,8 +1049,7 @@ feval ("remove_input_event_hook", args, 0); // FIXME ??? - // give FLTK 10 seconds to wrap it up - Fl::wait(10); + Fl::wait (fltk_maxtime); } octave_value retval;