Summary
Scrolling a pane (via mouse wheel or keyboard) intermittently leaves stray characters on screen that look like ANSI escape sequence fragments.
Reproduction
Steps observed by reporter:
- Open a conversation pane with enough content to scroll.
- Scroll down/up repeatedly.
- Occasionally, fragments like
;26M5;975;97;26M5;97;26M4;97;26M5;97;26M render on screen.
Expected behavior
Scrolling repaints cleanly with no artifacts.
Actual behavior
Intermittent escape-sequence-like characters appear in the pane.
Context
- The characters resemble SGR mouse-tracking fragments (
CSI < btn;x;y M/m) or truncated SGR/cursor-positioning output.
- Relevant subsystems:
src/Screen.zig — dirty-rectangle render, clearRect, force_full_clear
src/Compositor.zig — drawDirtyLeaves, drawBufferIntoRect, scroll offset handling
src/Viewport.zig — scroll_dirty / isDirty logic
src/Terminal.zig — synchronized output enable (CSI ?2026h/l), mouse tracking (?1006)
- Missing details:
- Terminal emulator name and version.
- Whether it reproduces with keyboard scroll (PageUp/PageDown/Ctrl-U/D) or only mouse wheel.
- Whether this is a recent regression.
Summary
Scrolling a pane (via mouse wheel or keyboard) intermittently leaves stray characters on screen that look like ANSI escape sequence fragments.
Reproduction
Steps observed by reporter:
;26M5;975;97;26M5;97;26M4;97;26M5;97;26Mrender on screen.Expected behavior
Scrolling repaints cleanly with no artifacts.
Actual behavior
Intermittent escape-sequence-like characters appear in the pane.
Context
CSI < btn;x;y M/m) or truncated SGR/cursor-positioning output.src/Screen.zig— dirty-rectangle render,clearRect,force_full_clearsrc/Compositor.zig—drawDirtyLeaves,drawBufferIntoRect, scroll offset handlingsrc/Viewport.zig—scroll_dirty/isDirtylogicsrc/Terminal.zig— synchronized output enable (CSI ?2026h/l), mouse tracking (?1006)