bump passepartout: v0.9.0 Warm TUI Redesign fixes
This commit is contained in:
@@ -976,17 +976,31 @@ Event handlers + daemon I/O + main loop.
|
||||
((eql btn :scroll-down)
|
||||
(setf (st :scroll-offset) (max 0 (- (st :scroll-offset) 3)))
|
||||
(setf (st :dirty) (list nil t nil))))))
|
||||
((cl-tty.input:dispatch-key-event data)
|
||||
nil)
|
||||
(t (on-key ch)))))))
|
||||
(when (or (first (st :dirty)) (second (st :dirty)) (third (st :dirty)))
|
||||
(cl-tty.backend:backend-clear be)
|
||||
(redraw curr-fb w h)
|
||||
(cl-tty.rendering:flush-framebuffer prev-fb curr-fb be)
|
||||
;; Draw separator line above input
|
||||
(cl-tty.backend:draw-text be 0 (- h 4) (make-string w :initial-element #\─)
|
||||
(theme-color :separator) nil)
|
||||
(rotatef prev-fb curr-fb))
|
||||
((member ch '(:enter 13 10 #\Newline #\Return 343))
|
||||
(on-key :enter))
|
||||
((cl-tty.input:dispatch-key-event data)
|
||||
nil)
|
||||
(t (on-key ch)))))))
|
||||
(when (or (first (st :dirty)) (second (st :dirty)) (third (st :dirty)))
|
||||
(cl-tty.backend:backend-clear be)
|
||||
(redraw curr-fb w h)
|
||||
;; Draw all rows from framebuffer directly
|
||||
(dotimes (row h)
|
||||
(let ((line (make-string w :initial-element #\Space))
|
||||
(fg (theme-color :agent-fg)) (bg nil))
|
||||
(dotimes (col w)
|
||||
(let* ((cell (aref curr-fb row col))
|
||||
(ch (cl-tty.rendering:cell-char cell))
|
||||
(cf (cl-tty.rendering:cell-fg cell))
|
||||
(cb (cl-tty.rendering:cell-bg cell)))
|
||||
(when ch (setf (char line col) ch))
|
||||
(when cf (setf fg cf))
|
||||
(when cb (setf bg cb))))
|
||||
(cl-tty.backend:draw-text be 0 row line fg bg)))
|
||||
;; Draw separator line above input
|
||||
(cl-tty.backend:draw-text be 0 (- h 4) (make-string w :initial-element #\─)
|
||||
(theme-color :separator) nil)
|
||||
(rotatef prev-fb curr-fb))
|
||||
(let ((ds (st :dialog-stack)))
|
||||
(when ds
|
||||
(let* ((dlg (car ds))
|
||||
|
||||
Reference in New Issue
Block a user