Skip to content

Commit ebeff37

Browse files
Fix #1271: constrain web tab header titles
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
1 parent cc384f0 commit ebeff37

2 files changed

Lines changed: 27 additions & 1 deletion

File tree

Phantom.Workspaces.Tests/TabHeaderViewModelTests.cs

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,31 @@ public void TabHeaderViewModel_WebTabHeaderTemplate_UsesCharacterEllipsisTrimmin
351351
Assert.Equal(TextTrimming.CharacterEllipsis, titleTextBlock.TextTrimming);
352352
}
353353

354+
[AvaloniaFact(Timeout = 15_000)]
355+
public void WebTabHeaderTemplate_LongTitle_TextBlockIsTrimmedToConfiguredMaxWidth()
356+
{
357+
var viewModel = new WebTabHeaderViewModel
358+
{
359+
Title = "Bug: \"Microsoft.Extensions.AI.UsageContent\" leaks as literal text in assistant replies on tool-only turns",
360+
};
361+
362+
var titleTextBlock = InflateTabHeaderTitleTextBlock(viewModel, ResolveWebTabHeaderTemplate());
363+
364+
Assert.Equal(TextTrimming.CharacterEllipsis, titleTextBlock.TextTrimming);
365+
Assert.Equal(240, titleTextBlock.MaxWidth);
366+
}
367+
368+
[AvaloniaFact(Timeout = 15_000)]
369+
public void WebTabHeaderTemplate_LongTitle_ToolTipStillExposesFullTitle()
370+
{
371+
const string longTitle = "Bug: Web tab titles are not length-limited and full page titles overflow the tab strip";
372+
var viewModel = new WebTabHeaderViewModel { Title = longTitle };
373+
374+
var titleTextBlock = InflateTabHeaderTitleTextBlock(viewModel, ResolveWebTabHeaderTemplate());
375+
376+
Assert.Equal(longTitle, ToolTip.GetTip(titleTextBlock));
377+
}
378+
354379
[AvaloniaFact(Timeout = 15_000)]
355380
public void TabHeaderViewModel_DefaultTemplate_DoesNotTrim()
356381
{

Phantom.Workspaces/Templates/TabHeaderItemTemplates.axaml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,8 @@
5252
<StackPanel Orientation="Horizontal" Spacing="4">
5353
<TextBlock Text="{Binding Title}"
5454
ToolTip.Tip="{Binding Title}"
55-
TextTrimming="CharacterEllipsis" />
55+
TextTrimming="CharacterEllipsis"
56+
MaxWidth="240" />
5657
<ItemsControl ItemsSource="{Binding Items}">
5758
<ItemsControl.ItemsPanel>
5859
<ItemsPanelTemplate>

0 commit comments

Comments
 (0)