[mcclim-cvs] CVS mcclim/Apps/Listener
ahefner
ahefner at common-lisp.net
Mon Dec 31 23:34:53 UTC 2007
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)
More information about the Mcclim-cvs
mailing list