From 722df5c8db2961fe925229314e2aba60b7805020 Mon Sep 17 00:00:00 2001 From: dkushmerick Date: Mon, 6 Apr 2026 14:02:39 -0700 Subject: [PATCH] Fix compact mode launch state restoring incorrect window size MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the app was closed in compact mode, CompactModeProvider correctly restored IsCompactMode=true from settings, causing ApplyCompactMode to load Sizes.Compact.xaml. However, the window always opened at its XAML-defined default dimensions (1200x800), producing a full-size window with compact UI styles applied — a visual mismatch. Fix: - Restore the CompactModeProvider settings read (re-enables persistence) - Set window Width/Height in the MainWindow constructor (before Show()) so the window opens at the correct size immediately with no resize flash Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> --- src/PackageUploader.UI/MainWindow.xaml.cs | 7 +++++++ src/PackageUploader.UI/Providers/CompactModeProvider.cs | 3 --- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/src/PackageUploader.UI/MainWindow.xaml.cs b/src/PackageUploader.UI/MainWindow.xaml.cs index 67efd6b6..13bce687 100644 --- a/src/PackageUploader.UI/MainWindow.xaml.cs +++ b/src/PackageUploader.UI/MainWindow.xaml.cs @@ -42,6 +42,13 @@ public MainWindow(UserLoggedInProvider userLoggedInProvider, IAuthenticationServ // Set version display VersionText.Text = string.Format(UI.Resources.Strings.MainPage.VersionLabel, GetSimpleVersion()); + // Set initial window size before Show() so it opens at the correct dimensions + if (_compactModeProvider.IsCompactMode) + { + Width = 600; + Height = 420; + } + // Sync icons with initial state UpdateCompactModeIcon(); } diff --git a/src/PackageUploader.UI/Providers/CompactModeProvider.cs b/src/PackageUploader.UI/Providers/CompactModeProvider.cs index bf712edc..4490dd2d 100644 --- a/src/PackageUploader.UI/Providers/CompactModeProvider.cs +++ b/src/PackageUploader.UI/Providers/CompactModeProvider.cs @@ -14,7 +14,6 @@ public class CompactModeProvider : INotifyPropertyChanged public CompactModeProvider() { - // Read initial state from the shared settings cache (loaded once at startup by BaseViewModel). var stored = ViewModel.BaseViewModel.GetExternalSetting(SettingsKey); _isCompactMode = bool.TryParse(stored, out var result) && result; } @@ -27,8 +26,6 @@ public bool IsCompactMode if (_isCompactMode != value) { _isCompactMode = value; - // Route through the shared in-memory cache so BaseViewModel.SaveSettings() - // never overwrites this value with a stale copy. ViewModel.BaseViewModel.SetExternalSetting(SettingsKey, value.ToString()); OnPropertyChanged(); }