Mercurial > hg > octave-nkf
diff src/DLD-FUNCTIONS/fltk_backend.cc @ 9216:9d4b84b14bf0
call mlock in __fltk_init__
author | John W. Eaton <jwe@octave.org> |
---|---|
date | Tue, 19 May 2009 12:49:57 -0400 |
parents | de7cef39f505 |
children | 16f53d29049f |
line wrap: on
line diff
--- a/src/DLD-FUNCTIONS/fltk_backend.cc +++ b/src/DLD-FUNCTIONS/fltk_backend.cc @@ -60,6 +60,7 @@ #include "gl-render.h" #include "graphics.h" #include "parse.h" +#include "variables.h" #define FLTK_BACKEND_NAME "fltk" @@ -836,15 +837,26 @@ return 0; } +DEFUN_DLD (__fltk_redraw__, , , "") +{ + __fltk_redraw__ (); + + return octave_value (); +} + // call this to init the fltk backend DEFUN_DLD (__init_fltk__, , , "") { if (! backend_registered) { + mlock (); + graphics_backend::register_backend (new fltk_backend); backend_registered = true; - command_editor::add_event_hook (__fltk_redraw__); + octave_value_list args; + args(0) = "__fltk_redraw__"; + feval ("add_input_event_hook", args, 0); } octave_value retval; @@ -857,11 +869,15 @@ { if (backend_registered) { + munlock ("__init_fltk__"); + figure_manager::close_all (); graphics_backend::unregister_backend (FLTK_BACKEND_NAME); backend_registered = false; - command_editor::remove_event_hook (__fltk_redraw__); + octave_value_list args; + args(0) = "__fltk_redraw__"; + feval ("remove_input_event_hook", args, 0); // FIXME ??? // give FLTK 10 seconds to wrap it up @@ -872,7 +888,6 @@ return retval; } -// call this to delete the fltk backend DEFUN_DLD (__fltk_maxtime__, args, ,"") { octave_value retval = fltk_maxtime;