Use navigator context for close dialog
build / Build Linux wallet (push) Successful in 2m23s
build / Build Windows wallet (push) Successful in 19m30s

This commit is contained in:
Codex Bot
2026-04-20 00:53:52 +02:00
parent 771a1887fc
commit 517962bf67
+6 -1
View File
@@ -40,6 +40,7 @@ class _PeyaAppState extends ConsumerState<PeyaApp> with WindowListener {
ProviderSubscription<WalletState>? _walletSubscription;
final GlobalKey<ScaffoldMessengerState> _scaffoldMessengerKey =
GlobalKey<ScaffoldMessengerState>();
final GlobalKey<NavigatorState> _navigatorKey = GlobalKey<NavigatorState>();
String? _lastErrorMessage;
bool _desktopCloseHookInitialized = false;
bool _handlingWindowClose = false;
@@ -162,6 +163,8 @@ class _PeyaAppState extends ConsumerState<PeyaApp> with WindowListener {
await windowManager.setPreventClose(false);
await _logCloseDebug('handleNativeWindowClose destroying window');
await windowManager.destroy();
} catch (error, stack) {
await _logCloseDebug('handleNativeWindowClose error: $error\n$stack');
} finally {
await _logCloseDebug('handleNativeWindowClose finished');
_handlingWindowClose = false;
@@ -329,7 +332,8 @@ class _PeyaAppState extends ConsumerState<PeyaApp> with WindowListener {
await _logCloseDebug('handleAppCloseRequest aborted: not mounted');
return false;
}
final dialogContext = _scaffoldMessengerKey.currentContext ?? context;
final dialogContext =
_navigatorKey.currentContext ?? _scaffoldMessengerKey.currentContext ?? context;
final l10n = AppLocalizations.of(dialogContext);
await _logCloseDebug('handleAppCloseRequest showing dialog');
final decision = await showDialog<bool?>(
@@ -418,6 +422,7 @@ class _PeyaAppState extends ConsumerState<PeyaApp> with WindowListener {
onGenerateTitle: (context) => AppLocalizations.of(context)!.appTitle,
debugShowCheckedModeBanner: false,
scaffoldMessengerKey: _scaffoldMessengerKey,
navigatorKey: _navigatorKey,
theme: _buildTheme(),
locale: config.resolveLocale(),
supportedLocales: const [