Update of /project/mcclim/cvsroot/mcclim/Drei In directory clnet:/tmp/cvs-serv15585/Drei
Modified Files: drei-clim.lisp drei-redisplay.lisp Log Message: Don't redisplay cursor if the associated view has not been displayed yet.
--- /project/mcclim/cvsroot/mcclim/Drei/drei-clim.lisp 2008/01/27 09:36:07 1.33 +++ /project/mcclim/cvsroot/mcclim/Drei/drei-clim.lisp 2008/01/27 10:46:53 1.34 @@ -189,10 +189,12 @@
(defmethod visible-1 and (cursor (view drei-buffer-view)) ;; We should only redisplay when the cursor is on display, or - ;; `offset-to-screen-position' will return a non-number. - (<= (offset (top view)) - (offset (mark cursor)) - (offset (bot view)))) + ;; `offset-to-screen-position' will return a non-number. Also don't + ;; display if the view hasn't been displayed yet. + (and (<= (offset (top view)) + (offset (mark cursor)) + (offset (bot view))) + (plusp (displayed-lines-count view))))
(defmethod (setf view) :after (new-val (drei drei-pane)) (window-clear drei)) --- /project/mcclim/cvsroot/mcclim/Drei/drei-redisplay.lisp 2008/01/27 09:36:07 1.50 +++ /project/mcclim/cvsroot/mcclim/Drei/drei-redisplay.lisp 2008/01/27 10:46:53 1.51 @@ -920,7 +920,7 @@ (defmethod display-drei-view-cursor :around ((stream extended-output-stream) (view drei-buffer-view) (cursor drei-cursor)) - (when (<= (offset (top view)) (offset (mark cursor)) (offset (bot view))) + (when (visible-p cursor) (clear-output-record cursor) (prog1 (call-next-method) (with-bounding-rectangle* (x1 y1 x2 y2) cursor @@ -1021,8 +1021,7 @@ (declare (ignore x-offset y-offset region)) (clear-output-record cursor) (with-output-recording-options (stream :record t :draw t) - (when (visible-p cursor) - (display-drei-view-cursor stream (view cursor) cursor)))) + (display-drei-view-cursor stream (view cursor) cursor)))
(defun display-drei-area (drei) (with-accessors ((stream editor-pane) (view view)) drei