[mcclim-cvs] CVS mcclim

ahefner ahefner at common-lisp.net
Wed Dec 20 16:23:49 UTC 2006


Update of /project/mcclim/cvsroot/mcclim
In directory clnet:/tmp/cvs-serv3170

Modified Files:
	frames.lisp 
Log Message:
In find-frame-manager, don't choose the current or default frame managers
if this would contradict the :port argument.



--- /project/mcclim/cvsroot/mcclim/frames.lisp	2006/12/17 00:29:14	1.121
+++ /project/mcclim/cvsroot/mcclim/frames.lisp	2006/12/20 16:23:49	1.122
@@ -30,14 +30,21 @@
 
 ;;; Frame-Manager class
 
+;; FIXME: The spec says the port must "conform to options".
+;; I've added a check that the ports match, but we've no
+;; protocol for testing the other options. -Hefner
 (defun find-frame-manager (&rest options &key port &allow-other-keys)
   (declare (special *frame-manager*))
-  (if (boundp '*frame-manager*)
+  (if (and (boundp '*frame-manager*)
+           (or (null port)
+               (eql port (frame-manager-port *frame-manager*))))
       *frame-manager*
     (if (and *default-frame-manager*
-	     (frame-manager-p *default-frame-manager*))
+             (frame-manager-p *default-frame-manager*)
+             (or (null port)
+                 (eql port (frame-manager-port *default-frame-manager*))))
 	*default-frame-manager*
-      (first (frame-managers (or port (apply #'find-port options)))))))
+        (first (frame-managers (or port (apply #'find-port options)))))))
 
 (defmacro with-frame-manager ((frame-manager) &body body)
   `(let ((*frame-manager* ,frame-manager))




More information about the Mcclim-cvs mailing list