[mcclim-cvs] CVS mcclim

afuchs afuchs at common-lisp.net
Thu Apr 20 22:53:15 UTC 2006


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

Modified Files:
	incremental-redisplay.lisp 
Log Message:
argh. revert the last constant-factors fold.

gather-was and gather-is are fundamentally different. file under
lessons learned.


--- /project/mcclim/cvsroot/mcclim/incremental-redisplay.lisp	2006/04/20 22:43:47	1.56
+++ /project/mcclim/cvsroot/mcclim/incremental-redisplay.lisp	2006/04/20 22:53:15	1.57
@@ -778,24 +778,38 @@
                         (if (some #'(lambda (x) (output-record-equal record x)) q)
                             (push record stay)
                             (push record come)))))))
-      ;; Collect what was there and what's still there
-      (labels ((gather-was-and-is (record)
+      ;; Collect what was there
+      (labels ((gather-was (record)
                  (cond ((displayed-output-record-p record)
                         (collect-1-was record))
                        ((updating-output-record-p record)
                         (cond ((eq :clean (output-record-dirty record))
-                               (collect-1-was record)
+                               (collect-1-was record))
+                              ((eq :moved (output-record-dirty record))
+                               (collect-1-was (slot-value record 'old-bounds)))
+                              (t
+                               (map-over-output-records-overlapping-region #'gather-was
+                                                                           (old-children record)
+                                                                           everywhere))))
+                       (t
+                        (map-over-output-records-overlapping-region #'gather-was record everywhere)))))
+        (gather-was record))
+      ;; Collect what still is there
+      (labels ((gather-is (record)
+                 (cond ((displayed-output-record-p record)
+                        (collect-1-is record))
+                       ((updating-output-record-p record)
+                        (cond ((eq :clean (output-record-dirty record))
                                (collect-1-is record))
                               ((eq :moved (output-record-dirty record))
-                               (collect-1-was (slot-value record 'old-bounds))
                                (collect-1-is record))
                               (t
-                               (map-over-output-records-overlapping-region #'gather-was-and-is
-                                                                           (old-children record)
+                               (map-over-output-records-overlapping-region #'gather-is
+                                                                           (sub-record record)
                                                                            everywhere))))
                        (t
-                        (map-over-output-records-overlapping-region #'gather-was-and-is record everywhere)))))
-        (gather-was-and-is record)))
+                        (map-over-output-records-overlapping-region #'gather-is record everywhere) ))))
+        (gather-is record)))
     ;;
     (let (gone)
       ;; gone = was \ is




More information about the Mcclim-cvs mailing list