Files
tty7/src
kalpakprodandkalpak e7e53e69c5 fix(tabs): a title that only swaps its status mark no longer repaints the window (#1114)
An agent that animates its title (Claude Code turns a circle one quadrant
at a time) sends a new OSC title every few hundred milliseconds. Each one
rebuilt the whole window for a tab that reads the same, because
TabView::label() strips the mark before drawing it.

Two places now read "same title" the way label() does (trimmed, status
mark stripped, via tab_view::same_title_ignoring_status_mark):

- settle_title treats a frame that only changes the mark as a Revert, so
  it queues no 400 ms wait and ends in no cx.notify() on the pane.
- on_layout_delta asks the machine mirror, before applying a PaneFacts
  delta, whether the pane's record differs from the mirror's by anything
  but such a title, and skips apply_layout_delta (whose only effect for
  PaneFacts is the notify of the root view) when it does not. The mirror
  is still updated and sync_window still runs.

A title whose words change lands as before, so a ticking counter in a
title repaints as often as it did.

Co-authored-by: kalpak <307643502+kalpakprod@users.noreply.github.com>
2026-10-07 22:08:58 +08:00
..