Skip to content

Commit a93e956

Browse files
Fixed: Selection isn't cleared when switching between panes (#11745)
1 parent 46ebd77 commit a93e956

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

src/Files.App/Views/PaneHolderPage.xaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@
5353
x:Name="PaneLeft"
5454
ContentChanged="Pane_ContentChanged"
5555
IsPageMainPane="True"
56-
Loaded="PaneLeft_Loaded"
56+
Loaded="Pane_Loaded"
5757
NavParams="{x:Bind NavParamsLeft, Mode=OneWay}"
5858
PaneHolder="{x:Bind}" />
5959

@@ -65,7 +65,7 @@
6565
x:Name="PaneRight"
6666
ContentChanged="Pane_ContentChanged"
6767
IsPageMainPane="False"
68-
Loaded="PaneRight_Loaded"
68+
Loaded="Pane_Loaded"
6969
NavParams="{x:Bind NavParamsRight, Mode=OneWay}"
7070
PaneHolder="{x:Bind}" />
7171
</Border>

src/Files.App/Views/PaneHolderPage.xaml.cs

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -330,19 +330,20 @@ public void CloseActivePane()
330330
IsRightPaneVisible = false;
331331
}
332332

333-
private void PaneLeft_Loaded(object sender, RoutedEventArgs e)
333+
private void Pane_Loaded(object sender, RoutedEventArgs e)
334334
{
335-
(sender as UIElement).GotFocus += Pane_GotFocus;
336-
}
337-
338-
private void PaneRight_Loaded(object sender, RoutedEventArgs e)
339-
{
340-
(sender as UIElement).GotFocus += Pane_GotFocus;
335+
((UIElement)sender).GotFocus += Pane_GotFocus;
341336
}
342337

343338
private void Pane_GotFocus(object sender, RoutedEventArgs e)
344339
{
345-
ActivePane = sender == PaneLeft ? PaneLeft : PaneRight;
340+
var isLeftPane = sender == PaneLeft;
341+
if (isLeftPane && (PaneRight?.SlimContentPage?.IsItemSelected ?? false))
342+
PaneRight.SlimContentPage.ItemManipulationModel.ClearSelection();
343+
else if (!isLeftPane && (PaneLeft?.SlimContentPage?.IsItemSelected ?? false))
344+
PaneLeft.SlimContentPage.ItemManipulationModel.ClearSelection();
345+
346+
ActivePane = isLeftPane ? PaneLeft : PaneRight;
346347
}
347348

348349
public void Dispose()

0 commit comments

Comments
 (0)