
Update of /project/cells/cvsroot/Celtk In directory clnet:/tmp/cvs-serv8947 Modified Files: Celtk.lisp run.lisp tk-interp.lisp Log Message: use tk_getnummainwindows to figure out when to stop looping on tcl_dooneevent --- /project/cells/cvsroot/Celtk/Celtk.lisp 2006/05/03 08:46:56 1.15 +++ /project/cells/cvsroot/Celtk/Celtk.lisp 2006/05/03 20:02:36 1.16 @@ -124,7 +124,7 @@ ; ; --- debug stuff --- ; - (let ((yes '("pop" "menu" "mnu")) + (let ((yes '("bind" "pop" "menu" "mnu")) (no '("tk-events"))) (declare (ignorable yes no)) --- /project/cells/cvsroot/Celtk/run.lisp 2006/05/03 17:18:29 1.4 +++ /project/cells/cvsroot/Celtk/run.lisp 2006/05/03 20:02:36 1.5 @@ -72,7 +72,8 @@ (defun tcl-do-one-event-loop () (loop with start-time = (get-internal-real-time) - while (> 10 (floor (- (get-internal-real-time) start-time) internal-time-units-per-second)) + while (and (plusp (tk-get-num-main-windows)) + (> 10 (floor (- (get-internal-real-time) start-time) internal-time-units-per-second))) do (bif (events (prog1 (tk-eval-list "set tk-events") @@ -80,6 +81,7 @@ (progn #+shhh (loop for e in events do (trc "event preview" e)) + (trc "main windows count =" (tk-get-num-main-windows)) (loop for e in events do (setf start-time (get-internal-real-time)) (tk-process-event e))) --- /project/cells/cvsroot/Celtk/tk-interp.lisp 2006/05/03 08:20:49 1.2 +++ /project/cells/cvsroot/Celtk/tk-interp.lisp 2006/05/03 20:02:36 1.3 @@ -165,6 +165,8 @@ (defcfun ("Tcl_GetStringResult" tcl-get-string-result) :string (interp :pointer)) + + (defcfun ("Tk_GetNumMainWindows" tk-get-num-main-windows) :int) (defun Tcl_Eval (interp script) (with-foreign-string (script-cstr script) @@ -388,11 +390,11 @@ (trc "tk-eval result:" (tk-eval "tk scaling")) (trc "tk-eval-list result:" (tk-eval-list "font families")))) -(defun exec-main () - (main "\\0devtools\\frgotk\\psu-rc-gui.tcl")) - -#+test -(exec-main) +;;;(defun exec-main () +;;; (main "\\0devtools\\frgotk\\psu-rc-gui.tcl")) +;;; +;;;#+test +;;;(exec-main) ;;; Togl stuff