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)