Commit 87eecf8
committed
fix: route damage events across all grids
ContextManager::get_by_route_id only looked inside the current grid,
so TerminalDamaged events from background tabs were silently dropped.
The PTY side had already set damage_event_in_flight=true when sending
the event, and nothing ever reset it, so once the user switched back
to that tab its terminal could not emit further damage notifications
until something forced a full render (a click or a tab-switch
shortcut).
Search all grids instead. The dirty flag accumulates on the
background panel's renderable content, and when the user brings that
tab forward the renderer processes the pending damage and clears
in_flight on the next frame. The terminal buffer retains its damage
state in the meantime, so nothing is lost.
Surfaced by 1-tab to 2-tab to 1-tab transitions where the tab-bar
margin change actually resized the background terminal and made its
shell emit data while it was in the background.1 parent 0d11ee2 commit 87eecf8
1 file changed
Lines changed: 10 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
757 | 757 | | |
758 | 758 | | |
759 | 759 | | |
760 | | - | |
| 760 | + | |
| 761 | + | |
| 762 | + | |
| 763 | + | |
| 764 | + | |
| 765 | + | |
| 766 | + | |
| 767 | + | |
| 768 | + | |
| 769 | + | |
761 | 770 | | |
762 | 771 | | |
763 | 772 | | |
| |||
0 commit comments