From a5f647196c2b64e55d1c36ab1a0a978c1b56218d Mon Sep 17 00:00:00 2001 From: 21pages Date: Sun, 6 Nov 2022 21:21:57 +0800 Subject: [PATCH] add missing cm close window handler Signed-off-by: 21pages --- flutter/lib/desktop/pages/server_page.dart | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/flutter/lib/desktop/pages/server_page.dart b/flutter/lib/desktop/pages/server_page.dart index 884ac6441..e344575c7 100644 --- a/flutter/lib/desktop/pages/server_page.dart +++ b/flutter/lib/desktop/pages/server_page.dart @@ -134,6 +134,7 @@ class ConnectionManagerState extends State { showMaximize: false, showMinimize: true, showClose: true, + onWindowCloseButton: handleWindowCloseButton, controller: serverModel.tabController, maxLabelWidth: 100, tail: buildScrollJumper(), @@ -206,6 +207,27 @@ class ConnectionManagerState extends State { ], )); } + + Future handleWindowCloseButton() async { + var tabController = gFFI.serverModel.tabController; + final connLength = tabController.length; + if (connLength <= 1) { + windowManager.close(); + return true; + } else { + final opt = "enable-confirm-closing-tabs"; + final bool res; + if (!option2bool(opt, await bind.mainGetOption(key: opt))) { + res = true; + } else { + res = await closeConfirmDialog(); + } + if (res) { + windowManager.close(); + } + return res; + } + } } Widget buildConnectionCard(Client client) {