authorgravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-09-25 21:56:34-07:00
committergravatar for git@paperclover.netclover caruso <git@paperclover.net> 2026-09-27 04:23:49-07:00
loga4301e095f7de2385624ba99646b141f79eb306d
tree4f9877a0e3d806efe9a9e15c2e2186e6dd1f10da
parent277262ce2972c2ec8337aff6a6d1a255efcfa0a8
signature Signed by SSH key SHA256:52mNGHRsVFBDED9IAX5pe+LRWUefqTbxEReunq21QvU

fix: pills beside the open page tab leave it a little more room

Assisted-by: claude-opus-5.5

1 files changed, 12 insertions(+), 3 deletions(-)

crates/snowbound/src/main.rs+12-3
...@@ -1079,7 +1079,13 @@ impl State {...@@ -1079,7 +1079,13 @@ impl State {
1079 },1079 },
1080 );1080 );
1081 let mut open = None;1081 let mut open = None;
1082 for (space, title, level) in matching(&session.pages, &self.filter) {1082 let pages: Vec<_> = matching(&session.pages, &self.filter).collect();
1083 let is_open = |index: Option<usize>| {
1084 index
1085 .and_then(|index| pages.get(index))
1086 .is_some_and(|(space, ..)| *space == session.space)
1087 };
1088 for (index, (space, title, level)) in pages.iter().enumerate() {
1083 let selected = *space == session.space;1089 let selected = *space == session.space;
1084 let spec = Spec {1090 let spec = Spec {
1085 flags: Flags::CLICKABLE,1091 flags: Flags::CLICKABLE,
...@@ -1109,10 +1115,13 @@ impl State {...@@ -1109,10 +1115,13 @@ impl State {
1109 ..Spec::default()1115 ..Spec::default()
1110 },1116 },
1111 );1117 );
1118 // A pill beside the open tab gives up a little on that side, widening the gap.
1119 let [above, below] = [index.checked_sub(1), Some(index + 1)]
1120 .map(|neighbour| if is_open(neighbour) { 2.0 } else { 0.0 });
1112 let spec = Spec {1121 let spec = Spec {
1113 flags: Flags::CLICKABLE | Flags::FLOAT,1122 flags: Flags::CLICKABLE | Flags::FLOAT,
1114 size: [px(PAGE_LIST - 3.0 - 6.0), px(26.0)],1123 size: [px(PAGE_LIST - 3.0 - 6.0), px(26.0 - above - below)],
1115 position: [3.0, 0.0],1124 position: [3.0, above],
1116 color: Some(if title.is_empty() {1125 color: Some(if title.is_empty() {
1117 ui::mix(theme.ink, section.tab, 0.5)1126 ui::mix(theme.ink, section.tab, 0.5)
1118 } else {1127 } else {