[climacs-cvs] CVS esa

crhodes crhodes at common-lisp.net
Sat Mar 25 22:24:15 UTC 2006


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




More information about the Climacs-cvs mailing list