fix: terminal cursor instead of software-drawn █
Replaced software cursor (draw-text █ every frame) with native terminal cursor (position-cursor using cursor-move + cursor-style). Terminal handles blinking natively at 500ms — no redraw needed for cursor updates. - position-cursor: computed input insertion point from state, calls cursor-move + cursor-style (:block :blink t) + cursor-show. - Called from main loop every frame after (sleep 0.1), outside redraw's begin-sync/end-sync. No flicker.
This commit is contained in:
@@ -1067,7 +1067,10 @@ Returns T on success, nil on failure. Does NOT wait or retry."
|
||||
(format nil "> ~a" (or filter ""))
|
||||
(theme-color :input-prompt) bg-p))
|
||||
(cl-tty.backend:end-sync be))
|
||||
(sleep 0.1)))
|
||||
(sleep 0.1)
|
||||
;; Show terminal cursor at input position every frame
|
||||
(unless (st :dialog-stack)
|
||||
(passepartout.channel-tui:position-cursor be w h))))
|
||||
(progn (disconnect-daemon)))))
|
||||
#+END_SRC
|
||||
|
||||
|
||||
Reference in New Issue
Block a user