Update of /project/climacs/cvsroot/esa In directory clnet:/tmp/cvs-serv29371
Modified Files: esa.lisp Log Message: This protocol makes the Baby Jesus cry.
If we call REDISPLAY-FRAME-PANES from EXECUTE-FRAME-COMMAND, we must absolutely make sure that it's called at a defined time, so that ESAs can make sure that their state is up to date when the redisplay occurs.
Call REDISPLAY-FRAME-PANES from EXECUTE-FRAME-COMMAND :AROUND (ESA-FRAME-MIXIN T) so that application bookkeeping can happen in primary/:before/:after methods (before redisplay-frame-panes) and in :AROUND (APP T) methods (for stuff to occur /after/ redisplay-frame-panes). See upcoming commit in climacs CVS for use of this.
--- /project/climacs/cvsroot/esa/esa.lisp 2006/03/26 20:59:36 1.4 +++ /project/climacs/cvsroot/esa/esa.lisp 2006/03/27 15:38:19 1.5 @@ -286,7 +286,10 @@ (setf (previous-command (car (windows frame))) (if (consp command) (car command) - command)) + command))) + +(defmethod execute-frame-command :around ((frame esa-frame-mixin) command) + (call-next-method) (when (eq frame *application-frame*) (redisplay-frame-panes frame)))