Skip to content

Commit db5b773

Browse files
authored
Merge pull request #3088 from Jack251970/dev2
Fix possible content frame navigation issue in welcome window & setting window
2 parents 9e46d3a + 929e7d6 commit db5b773

File tree

4 files changed

+31
-4
lines changed

4 files changed

+31
-4
lines changed

Flow.Launcher/SettingWindow.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -171,6 +171,7 @@
171171
IsPaneToggleButtonVisible="False"
172172
IsSettingsVisible="False"
173173
IsTabStop="False"
174+
Loaded="NavView_Loaded"
174175
OpenPaneLength="240"
175176
PaneDisplayMode="Left"
176177
SelectionChanged="NavigationView_SelectionChanged">

Flow.Launcher/SettingWindow.xaml.cs

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,6 @@ public SettingWindow(IPublicAPI api, SettingWindowViewModel viewModel)
2929
_api = api;
3030
InitializePosition();
3131
InitializeComponent();
32-
NavView.SelectedItem = NavView.MenuItems[0]; /* Set First Page */
3332
}
3433

3534
private void OnLoaded(object sender, RoutedEventArgs e)
@@ -169,7 +168,11 @@ private void NavigationView_SelectionChanged(NavigationView sender, NavigationVi
169168
else
170169
{
171170
var selectedItem = (NavigationViewItem)args.SelectedItem;
172-
if (selectedItem == null) return;
171+
if (selectedItem == null)
172+
{
173+
NavView_Loaded(sender, null); /* Reset First Page */
174+
return;
175+
}
173176

174177
var pageType = selectedItem.Name switch
175178
{
@@ -186,5 +189,22 @@ private void NavigationView_SelectionChanged(NavigationView sender, NavigationVi
186189
}
187190
}
188191

192+
private void NavView_Loaded(object sender, RoutedEventArgs e)
193+
{
194+
if (ContentFrame.IsLoaded)
195+
{
196+
ContentFrame_Loaded(sender, e);
197+
}
198+
else
199+
{
200+
ContentFrame.Loaded += ContentFrame_Loaded;
201+
}
202+
}
203+
204+
private void ContentFrame_Loaded(object sender, RoutedEventArgs e)
205+
{
206+
NavView.SelectedItem ??= NavView.MenuItems[0]; /* Set First Page */
207+
}
208+
189209
public record PaneData(Settings Settings, Updater Updater, IPortable Portable);
190210
}

Flow.Launcher/WelcomeWindow.xaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282
<ui:Frame
8383
x:Name="ContentFrame"
8484
HorizontalAlignment="Stretch"
85+
Loaded="ContentFrame_Loaded"
8586
ScrollViewer.CanContentScroll="True"
8687
ScrollViewer.HorizontalScrollBarVisibility="Visible"
8788
ScrollViewer.VerticalScrollBarVisibility="Visible">

Flow.Launcher/WelcomeWindow.xaml.cs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ public WelcomeWindow(Settings settings)
1717
InitializeComponent();
1818
BackButton.IsEnabled = false;
1919
this.settings = settings;
20-
ContentFrame.Navigate(PageTypeSelector(1), settings);
2120
}
2221

2322
private NavigationTransitionInfo _transitionInfo = new SlideNavigationTransitionInfo()
@@ -102,9 +101,15 @@ private static Type PageTypeSelector(int pageNumber)
102101
var tRequest = new TraversalRequest(FocusNavigationDirection.Next);
103102
textBox.MoveFocus(tRequest);
104103
}
104+
105105
private void OnActivated(object sender, EventArgs e)
106106
{
107107
Keyboard.ClearFocus();
108108
}
109+
110+
private void ContentFrame_Loaded(object sender, RoutedEventArgs e)
111+
{
112+
ContentFrame.Navigate(PageTypeSelector(1), settings); /* Set First Page */
113+
}
109114
}
110-
}
115+
}

0 commit comments

Comments
 (0)