Update of /project/climacs/cvsroot/climacs
In directory cl-net:/tmp/cvs-serv8205
Modified Files:
typeout.lisp
Log Message:
Fix redisplay issue in typeout panes.
--- /project/climacs/cvsroot/climacs/typeout.lisp 2008/02/06 09:23:01 1.8
+++ /project/climacs/cvsroot/climacs/typeout.lisp 2008/12/08 18:39:15 1.9
@@ -70,7 +70,14 @@
(if (and (not (dirty view))
(eq (output-record-parent (output-history view))
(stream-output-history pane)))
- (replay (stream-output-history pane) pane region)
+ (unless (region-equal region +nowhere+)
+ (let ((region (if (region-equal region +everywhere+)
+ (sheet-region pane)
+ (bounding-rectangle region))))
+ (with-bounding-rectangle* (x1 y1 x2 y2) region
+ (with-output-recording-options (pane :record nil)
+ (draw-rectangle* pane x1 y1 x2 y2 :filled t :ink +background-ink+)))
+ (replay (stream-output-history pane) pane region)))
(call-next-method)))
(defmethod display-drei-view-contents ((pane pane) (view typeout-view))
@@ -138,12 +145,12 @@
of the created typeout view. Returns NIL."
(let* ((typeout-view (ensure-typeout-view climacs label erase))
(pane-with-typeout-view (or (find typeout-view (windows climacs)
- :key #'view)
- (let ((pane (split-window t)))
- (setf (view pane) typeout-view)
- pane))))
+ :key #'view)
+ (let ((pane (split-window t)))
+ (setf (view pane) typeout-view)
+ pane))))
(let ((new-record (with-output-to-output-record (pane-with-typeout-view)
- (with-output-recording-options (pane-with-typeout-view :record t :draw t)
+ (with-output-recording-options (pane-with-typeout-view :record t :draw nil)
(when (last-cursor-position typeout-view)
(setf (stream-cursor-position pane-with-typeout-view)
(values-list (last-cursor-position typeout-view))))
@@ -161,8 +168,8 @@
view. If `erase' is true, clear the contents of any existing
typeout view with that name."
`(invoke-with-typeout-view *esa-instance* ,label ,erase
- #'(lambda (,stream)
- ,@body)))
+ #'(lambda (,stream)
+ ,@body)))
;;; An implementation of the Gray streams protocol that uses a Climacs
;;; typeout view to draw the output.