Skip to content

Commit 294f856

Browse files
committed
fix: bounds not updated after left side bar layout updated
1 parent b03ee19 commit 294f856

File tree

4 files changed

+174
-153
lines changed

4 files changed

+174
-153
lines changed

src/Views/BranchTree.axaml

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,11 @@
1010
x:Name="ThisControl">
1111
<DataGrid x:Name="BranchesPresenter"
1212
ItemsSource="{Binding #ThisControl.Rows}"
13-
Height="{Binding #ThisControl.Height}"
1413
Background="Transparent"
1514
RowHeight="24"
1615
CanUserReorderColumns="False"
1716
CanUserResizeColumns="False"
1817
CanUserSortColumns="False"
19-
HorizontalAlignment="Stretch"
2018
HorizontalScrollBarVisibility="Disabled"
2119
VerticalScrollBarVisibility="Auto"
2220
HeadersVisibility="None"
@@ -48,27 +46,27 @@
4846
<Setter Property="Opacity" Value=".8"/>
4947
</Style>
5048
</DataGrid.Styles>
51-
49+
5250
<DataGrid.Columns>
5351
<DataGridTemplateColumn Width="*">
5452
<DataGridTemplateColumn.CellTemplate>
5553
<DataTemplate x:DataType="vm:BranchTreeNode">
5654
<Grid Height="24"
57-
Margin="{Binding Depth, Converter={x:Static c:IntConverters.ToTreeMargin}}"
58-
ColumnDefinitions="16,20,*,Auto,Auto"
59-
Background="Transparent"
60-
DoubleTapped="OnDoubleTappedBranchNode"
55+
Margin="{Binding Depth, Converter={x:Static c:IntConverters.ToTreeMargin}}"
56+
ColumnDefinitions="16,20,*,Auto,Auto"
57+
Background="Transparent"
58+
DoubleTapped="OnDoubleTappedBranchNode"
6159
ToolTip.Tip="{Binding Tooltip}">
62-
60+
6361
<!-- Tree Expander -->
64-
<ToggleButton Grid.Column="0"
62+
<ToggleButton Grid.Column="0"
6563
Classes="tree_expander"
6664
Focusable="False"
6765
HorizontalAlignment="Center"
6866
IsChecked="{Binding IsExpanded}"
6967
IsHitTestVisible="False"
7068
IsVisible="{Binding !IsBranch}"/>
71-
69+
7270
<!-- Icon -->
7371
<v:BranchTreeNodeIcon Grid.Column="1"
7472
Node="{Binding}"
@@ -79,14 +77,14 @@
7977
Text="{Binding Name}"
8078
Classes="monospace"
8179
FontWeight="{Binding NameFontWeight}"/>
82-
80+
8381
<!-- Tracking status -->
84-
<Border Grid.Column="3"
85-
Margin="8,0"
86-
Height="18"
87-
CornerRadius="9"
88-
VerticalAlignment="Center"
89-
Background="{DynamicResource Brush.Badge}"
82+
<Border Grid.Column="3"
83+
Margin="8,0"
84+
Height="18"
85+
CornerRadius="9"
86+
VerticalAlignment="Center"
87+
Background="{DynamicResource Brush.Badge}"
9088
IsVisible="{Binding IsUpstreamTrackStatusVisible}">
9189
<TextBlock Classes="monospace" FontSize="10" HorizontalAlignment="Center" Margin="9,0" Text="{Binding UpstreamTrackStatus}" Foreground="{DynamicResource Brush.BadgeFG}"/>
9290
</Border>

src/Views/BranchTree.axaml.cs

Lines changed: 25 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,15 @@ public event EventHandler<RoutedEventArgs> SelectionChanged
113113
remove { RemoveHandler(SelectionChangedEvent, value); }
114114
}
115115

116+
public static readonly RoutedEvent<RoutedEventArgs> RowsChangedEvent =
117+
RoutedEvent.Register<BranchTree, RoutedEventArgs>(nameof(RowsChanged), RoutingStrategies.Tunnel | RoutingStrategies.Bubble);
118+
119+
public event EventHandler<RoutedEventArgs> RowsChanged
120+
{
121+
add { AddHandler(RowsChangedEvent, value); }
122+
remove { RemoveHandler(RowsChangedEvent, value); }
123+
}
124+
116125
public BranchTree()
117126
{
118127
InitializeComponent();
@@ -123,6 +132,14 @@ public void UnselectAll()
123132
BranchesPresenter.SelectedItem = null;
124133
}
125134

135+
protected override void OnSizeChanged(SizeChangedEventArgs e)
136+
{
137+
base.OnSizeChanged(e);
138+
139+
if (Bounds.Height >= 23.0)
140+
BranchesPresenter.Height = Bounds.Height;
141+
}
142+
126143
protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
127144
{
128145
base.OnPropertyChanged(change);
@@ -138,18 +155,20 @@ protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs chang
138155
Rows.AddRange(rows);
139156
}
140157

141-
var repo = this.FindAncestorOfType<Repository>();
142-
repo?.UpdateLeftSidebarLayout();
158+
RaiseEvent(new RoutedEventArgs(RowsChangedEvent));
143159
}
144160
else if (change.Property == IsVisibleProperty)
145161
{
146-
var repo = this.FindAncestorOfType<Repository>();
147-
repo?.UpdateLeftSidebarLayout();
162+
RaiseEvent(new RoutedEventArgs(RowsChangedEvent));
148163
}
149164
}
150165

151166
private void OnNodesSelectionChanged(object _, SelectionChangedEventArgs e)
152167
{
168+
var repo = DataContext as ViewModels.Repository;
169+
if (repo?.Settings == null)
170+
return;
171+
153172
foreach (var item in e.AddedItems)
154173
{
155174
if (item is ViewModels.BranchTreeNode node)
@@ -167,10 +186,7 @@ private void OnNodesSelectionChanged(object _, SelectionChangedEventArgs e)
167186
return;
168187

169188
if (selected.Count == 1 && selected[0] is ViewModels.BranchTreeNode { Backend: Models.Branch branch })
170-
{
171-
var repo = DataContext as ViewModels.Repository;
172-
repo?.NavigateToCommit(branch.Head);
173-
}
189+
repo.NavigateToCommit(branch.Head);
174190

175191
var prev = null as ViewModels.BranchTreeNode;
176192
foreach (var row in Rows)
@@ -285,8 +301,7 @@ private void OnDoubleTappedBranchNode(object sender, TappedEventArgs _)
285301
rows.RemoveRange(idx + 1, removeCount);
286302
}
287303

288-
var repo = this.FindAncestorOfType<Repository>();
289-
repo?.UpdateLeftSidebarLayout();
304+
RaiseEvent(new RoutedEventArgs(RowsChangedEvent));
290305
}
291306
}
292307
}

src/Views/Repository.axaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,8 @@
241241
Margin="8,0,4,0"
242242
Nodes="{Binding LocalBranchTrees}"
243243
IsVisible="{Binding IsLocalBranchGroupExpanded}"
244-
SelectionChanged="OnLocalBranchTreeSelectionChanged"/>
244+
SelectionChanged="OnLocalBranchTreeSelectionChanged"
245+
RowsChanged="OnBranchTreeRowsChanged"/>
245246

246247
<!-- Remotes -->
247248
<ToggleButton Grid.Row="2" Classes="group_expander" IsChecked="{Binding IsRemoteGroupExpanded, Mode=TwoWay}">
@@ -257,7 +258,8 @@
257258
Margin="8,0,4,0"
258259
Nodes="{Binding RemoteBranchTrees}"
259260
IsVisible="{Binding IsRemoteGroupExpanded}"
260-
SelectionChanged="OnRemoteBranchTreeSelectionChanged"/>
261+
SelectionChanged="OnRemoteBranchTreeSelectionChanged"
262+
RowsChanged="OnBranchTreeRowsChanged"/>
261263

262264
<!-- Tags -->
263265
<ToggleButton Grid.Row="4" Classes="group_expander" IsChecked="{Binding IsTagGroupExpanded, Mode=TwoWay}">

0 commit comments

Comments
 (0)