From e5b031fc1d0e4858ba675f52f4f5d224d4da774e Mon Sep 17 00:00:00 2001 From: shantanu sharma Date: Sun, 11 Oct 2026 00:53:33 +0530 Subject: [PATCH] fix: resolve windows freeze on close and lingering default plugins --- lib/hooks/configurators/use_close_behavior.dart | 6 +++--- .../metadata_plugin/metadata_plugin_provider.dart | 8 ++++++-- lib/provider/tray_manager/tray_menu.dart | 4 ++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/lib/hooks/configurators/use_close_behavior.dart b/lib/hooks/configurators/use_close_behavior.dart index 2bdc65ef..d5df8ef7 100644 --- a/lib/hooks/configurators/use_close_behavior.dart +++ b/lib/hooks/configurators/use_close_behavior.dart @@ -17,8 +17,8 @@ final closeNotification = !kIsDesktop actions: [ LocalNotificationAction(text: 'Close The App'), ], - )..onClickAction = (value) { - exit(0); + )..onClickAction = (value) async { + await windowManager.destroy(); }); void useCloseBehavior(WidgetRef ref) { @@ -29,7 +29,7 @@ void useCloseBehavior(WidgetRef ref) { await windowManager.hide(); closeNotification?.show(); } else { - exit(0); + await windowManager.destroy(); } }, ); diff --git a/lib/provider/metadata_plugin/metadata_plugin_provider.dart b/lib/provider/metadata_plugin/metadata_plugin_provider.dart index cdc96c41..0d71e990 100644 --- a/lib/provider/metadata_plugin/metadata_plugin_provider.dart +++ b/lib/provider/metadata_plugin/metadata_plugin_provider.dart @@ -454,8 +454,10 @@ class MetadataPluginNotifier extends AsyncNotifier { p != plugin && p.abilities.contains(PluginAbilities.metadata), ) ?? []; - if (remainingPlugins.length == 1) { + if (remainingPlugins.isNotEmpty) { await setDefaultMetadataPlugin(remainingPlugins.first); + } else { + await KVStoreService.setDefaultMetadataPlugin(""); } } @@ -466,8 +468,10 @@ class MetadataPluginNotifier extends AsyncNotifier { p.abilities.contains(PluginAbilities.audioSource), ) ?? []; - if (remainingPlugins.length == 1) { + if (remainingPlugins.isNotEmpty) { await setDefaultAudioSourcePlugin(remainingPlugins.first); + } else { + await KVStoreService.setDefaultAudioSourcePlugin(""); } } } diff --git a/lib/provider/tray_manager/tray_menu.dart b/lib/provider/tray_manager/tray_menu.dart index 42a3f948..0f1f89c9 100644 --- a/lib/provider/tray_manager/tray_menu.dart +++ b/lib/provider/tray_manager/tray_menu.dart @@ -99,8 +99,8 @@ final trayMenuProvider = Provider((ref) { MenuItem.separator(), MenuItem( label: "Quit", - onClick: (menuItem) { - exit(0); + onClick: (menuItem) async { + await windowManager.destroy(); }, ), ],