Skip to content

Commit 255f71c

Browse files
mdtauk0x5bfa
authored andcommitted
Catching some Size change crashes
1 parent e3f1da8 commit 255f71c

File tree

4 files changed

+39
-2
lines changed

4 files changed

+39
-2
lines changed

src/Files.App.Controls/Storage/StorageBar/StorageBar.cs

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,22 @@ private void StorageBar_Unloaded(object sender, RoutedEventArgs e)
9393
/// <param name="e"></param>
9494
private void StorageBar_SizeChanged(object sender, SizeChangedEventArgs e)
9595
{
96-
UpdateContainer(this, e.NewSize);
96+
Size minSize;
97+
98+
if ( DesiredSize.Width < MinWidth || DesiredSize.Height < MinHeight ||
99+
e.NewSize.Width < MinWidth || e.NewSize.Height < MinHeight )
100+
{
101+
Width = MinWidth;
102+
Height = MinHeight;
103+
104+
minSize = new Size( MinWidth , MinHeight );
105+
}
106+
else
107+
{
108+
minSize = e.NewSize;
109+
}
110+
111+
UpdateContainer(this, minSize );
97112
UpdateControl(this);
98113
}
99114

src/Files.App.Controls/Storage/StorageBar/StorageBar.xaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919
<Setter Property="Width" Value="240" />
2020
<Setter Property="Minimum" Value="0" />
2121
<Setter Property="Maximum" Value="100" />
22+
<Setter Property="MinWidth" Value="32"/>
23+
<Setter Property="MinHeight" Value="8"/>
2224
<Setter Property="Value" Value="25" />
2325
<Setter Property="SmallChange" Value="0.1" />
2426
<Setter Property="LargeChange" Value="10" />

src/Files.App.Controls/Storage/StorageRing/StorageRing.cs

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,23 @@ private void InitializeParts()
144144
/// <param name="e">Provides data related to the SizeChanged event.</param>
145145
private void StorageRing_SizeChanged(object sender, SizeChangedEventArgs e)
146146
{
147-
UpdateContainerCenterAndSizes(this, e.NewSize);
147+
Size minSize;
148+
149+
if ( DesiredSize.Width < MinWidth || DesiredSize.Height < MinHeight ||
150+
e.NewSize.Width < MinWidth || e.NewSize.Height < MinHeight)
151+
{
152+
Width = MinWidth;
153+
Height = MinHeight;
154+
155+
minSize = new Size( MinWidth , MinHeight );
156+
}
157+
else
158+
{
159+
minSize = e.NewSize;
160+
}
161+
162+
UpdateContainerCenterAndSizes( this , minSize );
163+
148164
UpdateRings(this);
149165
}
150166

src/Files.App.Controls/Storage/StorageRing/StorageRing.xaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@
2727
<Setter Property="LargeChange" Value="10" />
2828
<Setter Property="SmallChange" Value="0.1" />
2929
<Setter Property="UseLayoutRounding" Value="True" />
30+
<Setter Property="MinWidth" Value="12" />
31+
<Setter Property="MinHeight" Value="12" />
3032
<Setter Property="Template">
3133
<Setter.Value>
3234
<ControlTemplate TargetType="local:StorageRing">
@@ -35,6 +37,8 @@
3537
x:Name="GridRoot"
3638
Width="{TemplateBinding Width}"
3739
Height="{TemplateBinding Height}"
40+
MinWidth="{TemplateBinding MinWidth}"
41+
MinHeight="{TemplateBinding MinHeight}"
3842
Padding="{TemplateBinding Padding}"
3943
BorderBrush="{TemplateBinding BorderBrush}"
4044
BorderThickness="{TemplateBinding BorderThickness}">

0 commit comments

Comments
 (0)