Skip to content

Commit f446f5d

Browse files
committed
ux: text diff view style
- Calculating hunk area should use `VisualYPosition.LineTop/LineBottom` instead of `VisualYPosition.TextTop/TextBottom` - Improve the visibility of floating buttons for Light theme Signed-off-by: leo <longshuang@msn.cn>
1 parent 499b4b4 commit f446f5d

File tree

3 files changed

+16
-13
lines changed

3 files changed

+16
-13
lines changed

src/Resources/Themes.axaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@
1919
<Color x:Key="Color.Border2">#FFCFCFCF</Color>
2020
<Color x:Key="Color.FlatButton.Background">#FFF8F8F8</Color>
2121
<Color x:Key="Color.FlatButton.BackgroundHovered">White</Color>
22+
<Color x:Key="Color.FlatButton.FloatingBorder">#FF898989</Color>
2223
<Color x:Key="Color.FG1">#FF1F1F1F</Color>
2324
<Color x:Key="Color.FG2">#FF6F6F6F</Color>
2425
<Color x:Key="Color.Diff.EmptyBG">#10000000</Color>
@@ -49,6 +50,7 @@
4950
<Color x:Key="Color.Border2">#FF404040</Color>
5051
<Color x:Key="Color.FlatButton.Background">#FF303030</Color>
5152
<Color x:Key="Color.FlatButton.BackgroundHovered">#FF333333</Color>
53+
<Color x:Key="Color.FlatButton.FloatingBorder">#FF4F4F4F</Color>
5254
<Color x:Key="Color.FG1">#FFDDDDDD</Color>
5355
<Color x:Key="Color.FG2">#40F1F1F1</Color>
5456
<Color x:Key="Color.Diff.EmptyBG">#3C000000</Color>
@@ -79,6 +81,7 @@
7981
<SolidColorBrush x:Key="Brush.Border2" Color="{DynamicResource Color.Border2}"/>
8082
<SolidColorBrush x:Key="Brush.FlatButton.Background" Color="{DynamicResource Color.FlatButton.Background}"/>
8183
<SolidColorBrush x:Key="Brush.FlatButton.BackgroundHovered" Color="{DynamicResource Color.FlatButton.BackgroundHovered}"/>
84+
<SolidColorBrush x:Key="Brush.FlatButton.FloatingBorder" Color="{DynamicResource Color.FlatButton.FloatingBorder}"/>
8285
<SolidColorBrush x:Key="Brush.FG1" Color="{DynamicResource Color.FG1}"/>
8386
<SolidColorBrush x:Key="Brush.FG2" Color="{DynamicResource Color.FG2}"/>
8487
<SolidColorBrush x:Key="Brush.Accent" Color="{DynamicResource SystemAccentColor}"/>

src/Views/TextDiffView.axaml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
</ContentControl>
9898

9999
<StackPanel x:Name="Popup" IsVisible="False" Orientation="Horizontal" VerticalAlignment="Top" HorizontalAlignment="Right" Effect="drop-shadow(0 0 8 #80000000)">
100-
<Button Classes="flat" Click="OnStageChunk" HotKey="{OnPlatform Ctrl+S, macOS=⌘+S}" IsVisible="{Binding Option.IsUnstaged}">
100+
<Button Classes="flat" BorderBrush="{DynamicResource Brush.FlatButton.FloatingBorder}" Click="OnStageChunk" HotKey="{OnPlatform Ctrl+S, macOS=⌘+S}" IsVisible="{Binding Option.IsUnstaged}">
101101
<TextBlock>
102102
<Run Text="{DynamicResource Text.Hunk.Stage}"/>
103103
<Run Text=" "/>
@@ -108,7 +108,7 @@
108108
</TextBlock>
109109
</Button>
110110

111-
<Button Classes="flat" Click="OnUnstageChunk" HotKey="{OnPlatform Ctrl+U, macOS=⌘+U}" IsVisible="{Binding Option.IsUnstaged, Converter={x:Static BoolConverters.Not}}">
111+
<Button Classes="flat" BorderBrush="{DynamicResource Brush.FlatButton.FloatingBorder}" Click="OnUnstageChunk" HotKey="{OnPlatform Ctrl+U, macOS=⌘+U}" IsVisible="{Binding Option.IsUnstaged, Converter={x:Static BoolConverters.Not}}">
112112
<TextBlock>
113113
<Run Text="{DynamicResource Text.Hunk.Unstage}"/>
114114
<Run Text=" "/>
@@ -119,7 +119,7 @@
119119
</TextBlock>
120120
</Button>
121121

122-
<Button Classes="flat" Margin="8,0,0,0" HotKey="{OnPlatform Ctrl+D, macOS=⌘+D}" Click="OnDiscardChunk" IsVisible="{Binding Option.IsUnstaged}">
122+
<Button Classes="flat" BorderBrush="{DynamicResource Brush.FlatButton.FloatingBorder}" Margin="8,0,0,0" HotKey="{OnPlatform Ctrl+D, macOS=⌘+D}" Click="OnDiscardChunk" IsVisible="{Binding Option.IsUnstaged}">
123123
<TextBlock>
124124
<Run Text="{DynamicResource Text.Hunk.Discard}"/>
125125
<Run Text=" "/>

src/Views/TextDiffView.axaml.cs

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -988,10 +988,10 @@ protected override void UpdateSelectedChunk(double y)
988988
var endLine = view.GetVisualLine(endIdx + 1);
989989

990990
var rectStartY = startLine != null ?
991-
startLine.GetTextLineVisualYPosition(startLine.TextLines[0], VisualYPosition.TextTop) - view.VerticalOffset :
991+
startLine.GetTextLineVisualYPosition(startLine.TextLines[0], VisualYPosition.LineTop) - view.VerticalOffset :
992992
0;
993993
var rectEndY = endLine != null ?
994-
endLine.GetTextLineVisualYPosition(endLine.TextLines[^1], VisualYPosition.TextBottom) - view.VerticalOffset :
994+
endLine.GetTextLineVisualYPosition(endLine.TextLines[^1], VisualYPosition.LineBottom) - view.VerticalOffset :
995995
view.Bounds.Height;
996996

997997
TrySetChunk(new(rectStartY, rectEndY - rectStartY, startIdx, endIdx, true, false));
@@ -1008,7 +1008,7 @@ protected override void UpdateSelectedChunk(double y)
10081008
if (index > diff.Lines.Count)
10091009
break;
10101010

1011-
var endY = line.GetTextLineVisualYPosition(line.TextLines[^1], VisualYPosition.TextBottom);
1011+
var endY = line.GetTextLineVisualYPosition(line.TextLines[^1], VisualYPosition.LineBottom);
10121012
if (endY > y)
10131013
{
10141014
lineIdx = index - 1;
@@ -1033,10 +1033,10 @@ protected override void UpdateSelectedChunk(double y)
10331033
var endLine = view.GetVisualLine(endIdx + 1);
10341034

10351035
var rectStartY = startLine != null ?
1036-
startLine.GetTextLineVisualYPosition(startLine.TextLines[0], VisualYPosition.TextTop) - view.VerticalOffset :
1036+
startLine.GetTextLineVisualYPosition(startLine.TextLines[0], VisualYPosition.LineTop) - view.VerticalOffset :
10371037
0;
10381038
var rectEndY = endLine != null ?
1039-
endLine.GetTextLineVisualYPosition(endLine.TextLines[^1], VisualYPosition.TextBottom) - view.VerticalOffset :
1039+
endLine.GetTextLineVisualYPosition(endLine.TextLines[^1], VisualYPosition.LineBottom) - view.VerticalOffset :
10401040
view.Bounds.Height;
10411041

10421042
TrySetChunk(new(rectStartY, rectEndY - rectStartY, startIdx, endIdx, true, false));
@@ -1177,10 +1177,10 @@ protected override void UpdateSelectedChunk(double y)
11771177
var endLine = view.GetVisualLine(endIdx + 1);
11781178

11791179
var rectStartY = startLine != null ?
1180-
startLine.GetTextLineVisualYPosition(startLine.TextLines[0], VisualYPosition.TextTop) - view.VerticalOffset :
1180+
startLine.GetTextLineVisualYPosition(startLine.TextLines[0], VisualYPosition.LineTop) - view.VerticalOffset :
11811181
0;
11821182
var rectEndY = endLine != null ?
1183-
endLine.GetTextLineVisualYPosition(endLine.TextLines[^1], VisualYPosition.TextBottom) - view.VerticalOffset :
1183+
endLine.GetTextLineVisualYPosition(endLine.TextLines[^1], VisualYPosition.LineBottom) - view.VerticalOffset :
11841184
view.Bounds.Height;
11851185

11861186
diff.GetCombinedRangeForSingleSide(ref startIdx, ref endIdx, IsOld);
@@ -1198,7 +1198,7 @@ protected override void UpdateSelectedChunk(double y)
11981198
if (index > lines.Count)
11991199
break;
12001200

1201-
var endY = line.GetTextLineVisualYPosition(line.TextLines[^1], VisualYPosition.TextBottom);
1201+
var endY = line.GetTextLineVisualYPosition(line.TextLines[^1], VisualYPosition.LineBottom);
12021202
if (endY > y)
12031203
{
12041204
lineIdx = index - 1;
@@ -1223,10 +1223,10 @@ protected override void UpdateSelectedChunk(double y)
12231223
var endLine = view.GetVisualLine(endIdx + 1);
12241224

12251225
var rectStartY = startLine != null ?
1226-
startLine.GetTextLineVisualYPosition(startLine.TextLines[0], VisualYPosition.TextTop) - view.VerticalOffset :
1226+
startLine.GetTextLineVisualYPosition(startLine.TextLines[0], VisualYPosition.LineTop) - view.VerticalOffset :
12271227
0;
12281228
var rectEndY = endLine != null ?
1229-
endLine.GetTextLineVisualYPosition(endLine.TextLines[^1], VisualYPosition.TextBottom) - view.VerticalOffset :
1229+
endLine.GetTextLineVisualYPosition(endLine.TextLines[^1], VisualYPosition.LineBottom) - view.VerticalOffset :
12301230
view.Bounds.Height;
12311231

12321232
diff.GetCombinedRangeForBothSides(ref startIdx, ref endIdx, IsOld);

0 commit comments

Comments
 (0)