Skip to content

Fix: Fixed issue where updating the default layout wouldn't refresh open tabs #14651

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
6 changes: 6 additions & 0 deletions src/Files.App/Data/Models/ItemViewModel.cs
Original file line number Diff line number Diff line change
Expand Up @@ -612,6 +612,12 @@ await dispatcherQueue.EnqueueOrInvokeAsync(() =>
case nameof(UserSettingsService.FoldersSettingsService.DefaultSortFilesFirst):
case nameof(UserSettingsService.FoldersSettingsService.SyncFolderPreferencesAcrossDirectories):
case nameof(UserSettingsService.FoldersSettingsService.DefaultGroupByDateUnit):
case nameof(UserSettingsService.FoldersSettingsService.DefaultLayoutMode):
case nameof(UserSettingsService.LayoutSettingsService.DefaultIconSizeDetailsView):
case nameof(UserSettingsService.LayoutSettingsService.DefaultIconSizeListView):
case nameof(UserSettingsService.LayoutSettingsService.DefaulIconSizeTilesView):
case nameof(UserSettingsService.LayoutSettingsService.DefaulIconSizeGridView):
case nameof(UserSettingsService.LayoutSettingsService.DefaultIconSizeColumnsView):
await dispatcherQueue.EnqueueOrInvokeAsync(() =>
{
folderSettings.OnDefaultPreferencesChanged(WorkingDirectory, e.SettingName);
Expand Down
10 changes: 9 additions & 1 deletion src/Files.App/Helpers/Layout/LayoutPreferencesManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -502,7 +502,15 @@ public void OnDefaultPreferencesChanged(string path, string settingsName)
break;
case nameof(UserSettingsService.FoldersSettingsService.SyncFolderPreferencesAcrossDirectories):
LayoutPreferencesItem = preferencesItem;
// TODO: Update layout
LayoutModeChangeRequested?.Invoke(this, new LayoutModeEventArgs(LayoutMode, GridViewSize));
break;
case nameof(UserSettingsService.FoldersSettingsService.DefaultLayoutMode):
case nameof(UserSettingsService.LayoutSettingsService.DefaultIconSizeDetailsView):
case nameof(UserSettingsService.LayoutSettingsService.DefaultIconSizeListView):
case nameof(UserSettingsService.LayoutSettingsService.DefaulIconSizeTilesView):
case nameof(UserSettingsService.LayoutSettingsService.DefaulIconSizeGridView):
case nameof(UserSettingsService.LayoutSettingsService.DefaultIconSizeColumnsView):
LayoutModeChangeRequested?.Invoke(this, new LayoutModeEventArgs(LayoutMode, GridViewSize));
break;
}
}
Expand Down
5 changes: 3 additions & 2 deletions src/Files.App/Views/MainPage.xaml.cs
Original file line number Diff line number Diff line change
Expand Up @@ -169,7 +169,7 @@ public async void TabItemContent_ContentChanged(object? sender, CustomTabViewIte
await NavigationHelpers.UpdateInstancePropertiesAsync(paneArgs);
}

public void MultitaskingControl_CurrentInstanceChanged(object? sender, CurrentInstanceChangedEventArgs e)
public async void MultitaskingControl_CurrentInstanceChanged(object? sender, CurrentInstanceChangedEventArgs e)
{
if (SidebarAdaptiveViewModel.PaneHolder is not null)
SidebarAdaptiveViewModel.PaneHolder.PropertyChanged -= PaneHolder_PropertyChanged;
Expand All @@ -188,10 +188,11 @@ public void MultitaskingControl_CurrentInstanceChanged(object? sender, CurrentIn
UpdateStatusBarProperties();
UpdateNavToolbarProperties();
LoadPaneChanged();
NavigationHelpers.UpdateInstancePropertiesAsync(navArgs);

e.CurrentInstance.ContentChanged -= TabItemContent_ContentChanged;
e.CurrentInstance.ContentChanged += TabItemContent_ContentChanged;

await NavigationHelpers.UpdateInstancePropertiesAsync(navArgs);
}

private void PaneHolder_PropertyChanged(object? sender, PropertyChangedEventArgs e)
Expand Down