diff options
| author | Peter Geissler <peter@haxx.in> | 2026-09-20 19:49:09 +0200 |
|---|---|---|
| committer | Peter Geissler <peter@haxx.in> | 2026-09-20 19:49:09 +0200 |
| commit | 1b70e64fdb82344edb9b56a7374263539ce3fa0d (patch) | |
| tree | e07a90c051f110303d4c6f71a38033e95b9e97d0 /include | |
| parent | tabs: air before the new-tab button, and the option to do without it (diff) | |
| download | slosh-1b70e64fdb82344edb9b56a7374263539ce3fa0d.tar.gz slosh-1b70e64fdb82344edb9b56a7374263539ce3fa0d.tar.xz slosh-1b70e64fdb82344edb9b56a7374263539ce3fa0d.zip | |
sidebar: a talkative pane can no longer cost you a tab
Rows were spent in tab order until they ran out, so statuses from early tabs
simply consumed the rows later tabs needed for their labels. Four tabs of
three announcing panes in a sixteen-row terminal left the fourth tab with no
row and no hit anywhere on the sidebar -- not clipped, unreachable -- and the
new-tab button went with it.
The list is the navigation and a status is an annotation on it, so the
annotation is what gives way. Before drawing a tab's statuses, reserve a row
for each tab still to come and one for the button, and allow the statuses
only what is left over. The "and more" ellipsis is measured against that
allowance rather than the cap, so a list cut short by the height still says
it was cut, the same as one cut short by the setting.
The pad is deliberately not reserved: it already gives itself up a cell at a
time, which is the same order of surrender -- spacing, then extra statuses,
then statuses, never the thing they are about.
Diffstat (limited to 'include')
0 files changed, 0 insertions, 0 deletions
