mirror of
https://ghfast.top/https://github.com/StarCitizenToolBox/app.git
synced 2025-05-10 03:51:23 +08:00
fix: subWindow close
This commit is contained in:
parent
85bc6e487b
commit
a2de310d84
@ -1,6 +1,8 @@
|
|||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
|
import 'package:desktop_multi_window/desktop_multi_window.dart';
|
||||||
import 'package:desktop_webview_window/desktop_webview_window.dart';
|
import 'package:desktop_webview_window/desktop_webview_window.dart';
|
||||||
import 'package:fluent_ui/fluent_ui.dart';
|
import 'package:fluent_ui/fluent_ui.dart';
|
||||||
|
import 'package:flutter_hooks/flutter_hooks.dart';
|
||||||
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
import 'package:hooks_riverpod/hooks_riverpod.dart';
|
||||||
import 'package:starcitizen_doctor/generated/l10n.dart';
|
import 'package:starcitizen_doctor/generated/l10n.dart';
|
||||||
import 'package:window_manager/window_manager.dart';
|
import 'package:window_manager/window_manager.dart';
|
||||||
@ -36,13 +38,22 @@ _initWindow() async {
|
|||||||
await windowManager.center(animate: true);
|
await windowManager.center(animate: true);
|
||||||
}
|
}
|
||||||
|
|
||||||
class App extends HookConsumerWidget {
|
class App extends HookConsumerWidget with WindowListener {
|
||||||
const App({super.key});
|
const App({super.key});
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Widget build(BuildContext context, WidgetRef ref) {
|
Widget build(BuildContext context, WidgetRef ref) {
|
||||||
final router = ref.watch(routerProvider);
|
final router = ref.watch(routerProvider);
|
||||||
final appState = ref.watch(appGlobalModelProvider);
|
final appState = ref.watch(appGlobalModelProvider);
|
||||||
|
|
||||||
|
useEffect(() {
|
||||||
|
windowManager.addListener(this);
|
||||||
|
windowManager.setPreventClose(true);
|
||||||
|
return () async {
|
||||||
|
windowManager.removeListener(this);
|
||||||
|
};
|
||||||
|
}, const []);
|
||||||
|
|
||||||
return FluentApp.router(
|
return FluentApp.router(
|
||||||
title: "StarCitizenToolBox",
|
title: "StarCitizenToolBox",
|
||||||
restorationScopeId: "StarCitizenToolBox",
|
restorationScopeId: "StarCitizenToolBox",
|
||||||
@ -81,6 +92,20 @@ class App extends HookConsumerWidget {
|
|||||||
routeInformationProvider: router.routeInformationProvider,
|
routeInformationProvider: router.routeInformationProvider,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> onWindowClose() async {
|
||||||
|
debugPrint("onWindowClose");
|
||||||
|
if (await windowManager.isPreventClose()) {
|
||||||
|
final windows = await DesktopMultiWindow.getAllSubWindowIds();
|
||||||
|
for (final id in windows) {
|
||||||
|
await WindowController.fromWindowId(id).close();
|
||||||
|
}
|
||||||
|
await windowManager.destroy();
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
super.onWindowClose();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Widget _defaultWebviewTitleBar(BuildContext context) {
|
Widget _defaultWebviewTitleBar(BuildContext context) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user