Skip to content

Commit aa0d066

Browse files
committed
enhance: move Create New Page button out of tab list if scroll arrow is visible (#958)
Signed-off-by: leo <[email protected]>
1 parent 2495911 commit aa0d066

File tree

2 files changed

+27
-3
lines changed

2 files changed

+27
-3
lines changed

src/Views/LauncherTabBar.axaml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
88
x:Class="SourceGit.Views.LauncherTabBar"
99
x:DataType="vm:Launcher">
10-
<Grid ColumnDefinitions="Auto,*,Auto">
10+
<Grid ColumnDefinitions="Auto,*,Auto,Auto">
1111
<RepeatButton x:Name="LeftScrollIndicator" Grid.Column="0" Classes="icon_button" Width="18" Height="30" Click="ScrollTabsLeft">
1212
<Path Width="8" Height="14" Stretch="Fill" Data="{StaticResource Icons.TriangleLeft}"/>
1313
</RepeatButton>
@@ -96,7 +96,8 @@
9696
</ListBox.ItemTemplate>
9797
</ListBox>
9898

99-
<Button Classes="icon_button"
99+
<Button x:Name="InnerNewTabBtn"
100+
Classes="icon_button"
100101
Width="16" Height="16"
101102
Margin="8,0"
102103
Command="{Binding AddNewTab}">
@@ -115,5 +116,21 @@
115116
<RepeatButton x:Name="RightScrollIndicator" Grid.Column="2" Classes="icon_button" Width="18" Height="30" Click="ScrollTabsRight">
116117
<Path Width="8" Height="14" Stretch="Fill" Data="{StaticResource Icons.TriangleRight}"/>
117118
</RepeatButton>
119+
120+
<Button x:Name="OuterNewTabBtn"
121+
Grid.Column="3"
122+
Classes="icon_button"
123+
Width="16" Height="16"
124+
Margin="8,0"
125+
Command="{Binding AddNewTab}">
126+
<ToolTip.Tip>
127+
<StackPanel Orientation="Horizontal" VerticalAlignment="Center">
128+
<TextBlock Text="{DynamicResource Text.PageTabBar.New}" VerticalAlignment="Center"/>
129+
<TextBlock Margin="16,0,0,0" Text="{OnPlatform Ctrl+T, macOS=⌘+T}" Opacity=".6" FontSize="11" VerticalAlignment="Center"/>
130+
</StackPanel>
131+
</ToolTip.Tip>
132+
133+
<Path Width="12" Height="12" Data="{StaticResource Icons.Plus}"/>
134+
</Button>
118135
</Grid>
119136
</UserControl>

src/Views/LauncherTabBar.axaml.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ public override void Render(DrawingContext context)
4343
if (containerEndX < startX || containerEndX > endX)
4444
continue;
4545

46+
if (OuterNewTabBtn.IsVisible && i == count - 1)
47+
break;
48+
4649
var separatorX = containerEndX - startX + LauncherTabsScroller.Bounds.X;
4750
context.DrawLine(separatorPen, new Point(separatorX, separatorY), new Point(separatorX, separatorY + 20));
4851
}
@@ -88,7 +91,7 @@ public override void Render(DrawingContext context)
8891
x = drawRightX - 6;
8992
}
9093

91-
if (drawRightX < LauncherTabsScroller.Bounds.Right)
94+
if (drawRightX <= LauncherTabsScroller.Bounds.Right)
9295
{
9396
ctx.LineTo(new Point(x, y));
9497
x = drawRightX;
@@ -146,11 +149,15 @@ private void OnTabsLayoutUpdated(object _1, EventArgs _2)
146149
LeftScrollIndicator.IsEnabled = LauncherTabsScroller.Offset.X > 0;
147150
RightScrollIndicator.IsVisible = true;
148151
RightScrollIndicator.IsEnabled = LauncherTabsScroller.Offset.X < LauncherTabsScroller.Extent.Width - LauncherTabsScroller.Viewport.Width;
152+
InnerNewTabBtn.IsVisible = false;
153+
OuterNewTabBtn.IsVisible = true;
149154
}
150155
else
151156
{
152157
LeftScrollIndicator.IsVisible = false;
153158
RightScrollIndicator.IsVisible = false;
159+
InnerNewTabBtn.IsVisible = true;
160+
OuterNewTabBtn.IsVisible = false;
154161
}
155162

156163
InvalidateVisual();

0 commit comments

Comments
 (0)