diff --git a/lib/main.dart b/lib/main.dart index 141b7060..7b156bcd 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -228,10 +228,10 @@ Future _bootstrapApp() async { FullscreenStateManager().startMonitoring(); - // Apply "start in fullscreen" preference on Windows/Linux. macOS is - // excluded — its native fullscreen animation is awkward at launch and - // the OS already restores window state. - if ((Platform.isWindows || Platform.isLinux) && settings.read(SettingsService.startInFullscreen)) { + // Apply "start in fullscreen" preference on desktop. macOS does not restore + // fullscreen state on its own (frame autosave only persists windowed geometry), + // so it needs the same explicit handling as Windows/Linux. + if (PlatformDetector.isDesktopOS() && settings.read(SettingsService.startInFullscreen)) { unawaited(FullscreenStateManager().enterFullscreen()); } diff --git a/lib/screens/settings/appearance_settings_screen.dart b/lib/screens/settings/appearance_settings_screen.dart index d5456cce..dddb1769 100644 --- a/lib/screens/settings/appearance_settings_screen.dart +++ b/lib/screens/settings/appearance_settings_screen.dart @@ -115,7 +115,7 @@ class AppearanceSettingsScreen extends StatelessWidget { subtitle: t.settings.showUnwatchedCountDescription, ), - if (Platform.isWindows || Platform.isLinux) ...[ + if (PlatformDetector.isDesktopOS()) ...[ SettingsSectionHeader(t.settings.window), SettingSwitchTile( pref: SettingsService.startInFullscreen, @@ -123,10 +123,6 @@ class AppearanceSettingsScreen extends StatelessWidget { title: t.settings.startInFullscreen, subtitle: t.settings.startInFullscreenDescription, ), - ], - - if (PlatformDetector.isDesktopOS()) ...[ - if (!(Platform.isWindows || Platform.isLinux)) SettingsSectionHeader(t.settings.window), SettingSwitchTile( pref: SettingsService.exitFullscreenOnPlayerClose, icon: Symbols.fullscreen_exit_rounded,