Fix: ESC[2J aus Frame-Rendering entfernt verhindert Scrollback
ESC[2J schiebt in iTerm2 den Bildschirminhalt bei jedem Aufruf in den Scrollback-Puffer – 10x/Sekunde. Da render() ohnehin jede Zelle überschreibt, genügt ESC[H (Cursor-Home).
This commit is contained in:
parent
7c1f401a9b
commit
0ca2bf109d
1 changed files with 3 additions and 4 deletions
|
|
@ -121,10 +121,9 @@ class Canvas:
|
|||
self._ck[row][col] = ck
|
||||
|
||||
def render(self) -> str:
|
||||
# \033[2J clears the entire terminal (not just our canvas width),
|
||||
# preventing stale characters when the terminal is wider than self.cols
|
||||
# or after a resize. The full-canvas overwrite below keeps flicker minimal.
|
||||
parts = ["\033[2J\033[H", RESET]
|
||||
# \033[H homes the cursor; every cell is rewritten below so \033[2J is
|
||||
# not needed and would push content into the scrollback on every frame.
|
||||
parts = ["\033[H", RESET]
|
||||
sentinel = object()
|
||||
last_ck: object = sentinel
|
||||
for r in range(self.rows):
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue