Update of /project/climacs/cvsroot/esa In directory clnet:/tmp/cvs-serv1896
Modified Files: esa.lisp Log Message: Rearrange the esa loop a tiny bit: run redisplay-frame-panes from execute-frame-command if (eq frame *application-frame*), and from the abort-gesture handler too.
Make sure that the ESA methods on redisplay-frame-panes and execute-frame-command use the frame argument rather than *application-frame*.
--- /project/climacs/cvsroot/esa/esa.lisp 2006/03/25 00:08:07 1.1.1.1 +++ /project/climacs/cvsroot/esa/esa.lisp 2006/03/25 22:24:15 1.2 @@ -266,15 +266,20 @@
(defmethod redisplay-frame-panes :around ((frame esa-frame-mixin) &key force-p) (declare (ignore force-p)) - (when (null (remaining-keys *application-frame*)) - (setf (executingp *application-frame*) nil) + (when (null (remaining-keys frame)) + (setf (executingp frame) nil) (call-next-method)))
(defmethod execute-frame-command :after ((frame esa-frame-mixin) command) - (setf (previous-command *standard-output*) + ;; FIXME: I'm not sure that we want to do this for commands sent + ;; from other threads; we almost certainly don't want to do it twice + ;; in such cases... + (setf (previous-command (car (windows frame))) (if (consp command) (car command) - command))) + command)) + (when (eq frame *application-frame*) + (redisplay-frame-panes frame)))
(defgeneric find-applicable-command-table (frame))
@@ -299,16 +304,16 @@ (redisplay-frame-panes frame :force-p t) (loop do (restart-case - (progn - (handler-case - (let ((command-table (find-applicable-command-table frame))) - ;; for presentation-to-command-translators, - ;; which are searched for in - ;; (frame-command-table *application-frame*) - (setf (frame-command-table frame) command-table) - (process-gestures-or-command frame command-table)) - (abort-gesture () (display-message "Quit"))) - (redisplay-frame-panes frame)) + (handler-case + (let ((command-table (find-applicable-command-table frame))) + ;; for presentation-to-command-translators, + ;; which are searched for in + ;; (frame-command-table *application-frame*) + (setf (frame-command-table frame) command-table) + (process-gestures-or-command frame command-table)) + (abort-gesture () + (display-message "Quit") + (redisplay-frame-panes frame))) (return-to-esa () nil) (reset-esa () ;; This restart is used to jump out of deadlocks where