diff --git a/flutter/lib/desktop/pages/server_page.dart b/flutter/lib/desktop/pages/server_page.dart index 0023158ca..bfcc28382 100644 --- a/flutter/lib/desktop/pages/server_page.dart +++ b/flutter/lib/desktop/pages/server_page.dart @@ -18,13 +18,27 @@ class DesktopServerPage extends StatefulWidget { } class _DesktopServerPageState extends State - with AutomaticKeepAliveClientMixin { + with WindowListener, AutomaticKeepAliveClientMixin { @override void initState() { gFFI.ffiModel.updateEventListener(""); + windowManager.addListener(this); super.initState(); } + @override + void dispose() { + windowManager.removeListener(this); + super.dispose(); + } + + @override + void onWindowClose() { + gFFI.serverModel.closeAll(); + gFFI.close(); + super.onWindowClose(); + } + Widget build(BuildContext context) { super.build(context); return MultiProvider(