[mcclim-cvs] CVS mcclim/Drei

thenriksen thenriksen at common-lisp.net
Wed Jan 30 07:31:36 UTC 2008


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

Modified Files:
	drei.lisp packages.lisp views.lisp 
Log Message:
Added generic function clear-redisplay-information.


--- /project/mcclim/cvsroot/mcclim/Drei/drei.lisp	2008/01/28 16:53:21	1.33
+++ /project/mcclim/cvsroot/mcclim/Drei/drei.lisp	2008/01/30 07:31:33	1.34
@@ -369,7 +369,10 @@
   (dolist (cursor (cursors drei))
     (when (output-record-parent cursor)
       (delete-output-record cursor (output-record-parent cursor) nil)))
-  (add-view-cursors drei))
+  (add-view-cursors drei)
+  ;; Finally make sure it doesn't remember anything from a potential
+  ;; traumatic past.
+  (clear-redisplay-information new-val))
 
 (defmethod esa-current-buffer ((drei drei))
   (buffer (view drei)))
--- /project/mcclim/cvsroot/mcclim/Drei/packages.lisp	2008/01/24 15:45:33	1.47
+++ /project/mcclim/cvsroot/mcclim/Drei/packages.lisp	2008/01/30 07:31:33	1.48
@@ -237,6 +237,7 @@
            #:use-editor-commands-p
            #:synchronize-view
            #:create-view-cursors
+           #:clear-redisplay-information
            #:clone-view
            #:make-syntax-for-view
            
--- /project/mcclim/cvsroot/mcclim/Drei/views.lisp	2008/01/29 23:34:36	1.30
+++ /project/mcclim/cvsroot/mcclim/Drei/views.lisp	2008/01/30 07:31:34	1.31
@@ -485,6 +485,11 @@
              (call-next-method)))
   (:method-combination nconc))
 
+(defgeneric clear-redisplay-information (view)
+  (:documentation "Clear any redisplay information `view' may
+retain, so that a full redisplay will be performed the next time
+it is redisplayed."))
+
 (defgeneric clone-view (view &rest initargs)
   (:documentation "Clone the view object `view'. `Initargs' can
 be used to supply different values to the initargs of the
@@ -584,9 +589,6 @@
 (defmethod (setf syntax) :after (new-value (view drei-buffer-view))
   (invalidate-all-strokes view :modified t))
 
-(defmethod (setf view) :after ((view drei-buffer-view) (object drei))
-  (invalidate-all-strokes view))
-
 (defmethod cache-string :around ((view drei-buffer-view))
   (let ((string (call-next-method)))
     (setf (fill-pointer string) 0)
@@ -596,6 +598,9 @@
   "Return true if `view' is a `drei-buffer-view'."
   (typep view 'drei-buffer-view))
 
+(defmethod clear-redisplay-information ((view drei-buffer-view))
+  (invalidate-all-strokes view))
+
 (defun overlaps (x1 x2 y1 y2)
   "Return true if the x1/x2 region overlaps with y1/y2."
   (or (<= x1 y1 x2)




More information about the Mcclim-cvs mailing list