[mcclim-cvs] CVS mcclim

thenriksen thenriksen at common-lisp.net
Sun Dec 17 00:29:14 UTC 2006


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

Modified Files:
	frames.lisp 
Log Message:
Support pane-names in `redisplay-frame-pane', patch from Raymond Toy.


--- /project/mcclim/cvsroot/mcclim/frames.lisp	2006/07/01 21:00:31	1.120
+++ /project/mcclim/cvsroot/mcclim/frames.lisp	2006/12/17 00:29:14	1.121
@@ -368,22 +368,25 @@
 
 (defmethod redisplay-frame-pane :around ((frame application-frame) pane
 					 &key force-p)
-  (multiple-value-bind (redisplayp clearp)
-      (pane-needs-redisplay pane)
-    (when force-p
-      (setq redisplayp (or redisplayp t)
-	    clearp t))
-    (when redisplayp
-      (let ((hilited (frame-hilited-presentation frame)))
-	(when hilited
-	  (highlight-presentation-1 (car hilited) (cdr hilited) :unhighlight)
-	  (setf (frame-hilited-presentation frame) nil)))
-      (with-possible-double-buffering (frame pane)
-	(when clearp
-	  (window-clear pane))
-	(call-next-method))
-      (unless (or (eq redisplayp :command-loop) (eq redisplayp :no-clear))
-	(setf (pane-needs-redisplay pane) nil)))))
+  (let ((pane-object (if (typep pane 'pane)
+			 pane
+			 (find-pane-named frame pane))))
+    (multiple-value-bind (redisplayp clearp)
+	(pane-needs-redisplay pane-object)
+      (when force-p
+	(setq redisplayp (or redisplayp t)
+	      clearp t))
+      (when redisplayp
+	(let ((hilited (frame-hilited-presentation frame)))
+	  (when hilited
+	    (highlight-presentation-1 (car hilited) (cdr hilited) :unhighlight)
+	    (setf (frame-hilited-presentation frame) nil)))
+	(with-possible-double-buffering (frame pane-object)
+	  (when clearp
+	    (window-clear pane-object))
+	  (call-next-method))
+	(unless (or (eq redisplayp :command-loop) (eq redisplayp :no-clear))
+	  (setf (pane-needs-redisplay pane-object) nil))))))
 
 (defmethod run-frame-top-level ((frame application-frame)
 				&key &allow-other-keys)
@@ -561,7 +564,6 @@
 				 command-name)
 	  nil))))
 
-
 (defmethod make-pane-1 :around (fm (frame standard-application-frame) type
 				&rest args
 				&key (input-buffer nil input-buffer-p)




More information about the Mcclim-cvs mailing list