diff options
-rw-r--r-- | Core/clim/input-editing-drei.lisp | 8 | ||||
-rw-r--r-- | Libraries/Drei/drei-clim.lisp | 2 | ||||
-rw-r--r-- | Libraries/Drei/drei-redisplay.lisp | 7 |
3 files changed, 6 insertions, 11 deletions
diff --git a/Core/clim/input-editing-drei.lisp b/Core/clim/input-editing-drei.lisp index 1ef253d1..cb7a5eae 100644 --- a/Core/clim/input-editing-drei.lisp +++ b/Core/clim/input-editing-drei.lisp @@ -66,12 +66,10 @@ activated with GESTURE")) (funcall input-sensitizer real-stream #'(lambda () - (stream-add-output-record real-stream record) - (when (stream-drawing-p real-stream) - (replay record real-stream))))) - ;; We still want to replay it for the cursor visibility change... + (stream-add-output-record real-stream record)))) + ;; We still want to repaint it for the cursor visibility change... ((stream-drawing-p real-stream) - (replay record real-stream) )) + (dispatch-repaint real-stream record))) ;; FIXME this causes a line break even on an empty input. A most notable ;; example is when the command is accepted with :ECHO NIL -- jd 2022-12-09 (setf (stream-cursor-position real-stream) diff --git a/Libraries/Drei/drei-clim.lisp b/Libraries/Drei/drei-clim.lisp index 19bc92d4..23e9b922 100644 --- a/Libraries/Drei/drei-clim.lisp +++ b/Libraries/Drei/drei-clim.lisp @@ -518,7 +518,7 @@ record.")) (call-next-method))) (defmethod (setf active) :after (new-val (drei drei-area)) - (replay drei (editor-pane drei))) + (dispatch-repaint (editor-pane drei) drei)) (defmethod additional-command-tables append ((drei drei-area) (table drei-command-table)) `(exclusive-input-editor-table)) diff --git a/Libraries/Drei/drei-redisplay.lisp b/Libraries/Drei/drei-redisplay.lisp index 20b94f6b..2f62033a 100644 --- a/Libraries/Drei/drei-redisplay.lisp +++ b/Libraries/Drei/drei-redisplay.lisp @@ -719,7 +719,7 @@ type (found via `presentation-type-of') to generate output." (setf (output-record-position output-record) (values (+ cursor-x 0.1) (- cursor-y baseline))) (when draw - (replay output-record stream)) + (dispatch-repaint stream output-record)) (setf (aref widths 1) width) (record-stroke stroke parts widths cursor-x (- cursor-y baseline) @@ -1090,14 +1090,11 @@ calculated by `drei-bounding-rectangle*'." (defmethod replay-output-record ((cursor drei-cursor) stream &optional (x-offset 0) (y-offset 0) (region +everywhere+)) (declare (ignore x-offset y-offset region)) - (with-output-recording-options (stream :record t :draw t) - (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 (with-bounding-rectangle* (old-x1 old-y1 old-x2 old-y2) drei - (with-output-recording-options (stream :draw nil) - (replay drei stream)) (with-bounding-rectangle* (new-x1 new-y1 new-x2 new-y2) drei (unless (or (and (= new-x1 old-x1) (= new-y1 old-y2) (= new-x2 old-x2) (= new-y2 old-y2)) |