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	Tue May 19 12:37:57 2009 -0400
+++ b/src/DLD-FUNCTIONS/fltk_backend.cc	Tue May 19 12:49:57 2009 -0400
@@ -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;