Update of /project/mcclim/cvsroot/mcclim/Apps/Listener In directory clnet:/tmp/cvs-serv21458
Modified Files: listener.lisp Log Message: Call disown-frame, so that the window doesn't linger after it is supposed to have closed. This is necessary because run-listener passes a :frame-manager argument to make-application-frame, which causes adoption to occur there rather than run-frame-top-level, and the logic in run-frame-top-level wants to revert the frame to the state it was in upon entering, which is adopted and disabled, rather than disowned. That is, if the frame was adopted before entering run-frame-top-level (and in this instance, the spec requires that make-application-frame do so), it unreasonable to expect run-frame-top-level to disown it, implying we must do it ourself.
--- /project/mcclim/cvsroot/mcclim/Apps/Listener/listener.lisp 2007/12/13 07:57:15 1.36 +++ /project/mcclim/cvsroot/mcclim/Apps/Listener/listener.lisp 2007/12/31 23:34:53 1.37 @@ -158,13 +158,14 @@ port frame-manager (process-name "Listener")) - (let* ((fm (or frame-manager - (find-frame-manager :port (or port (find-port))))) + (let* ((fm (or frame-manager (find-frame-manager :port (or port (find-port))))) (frame (make-application-frame 'listener :frame-manager fm :width width :height height))) - (flet ((run () (run-frame-top-level frame))) + (flet ((run () + (unwind-protect (run-frame-top-level frame) + (disown-frame fm frame)))) (if new-process (values (clim-sys:make-process #'run :name process-name) frame)