From 3edba4e2db5cb4214a66de6eeffd062fe07da328 Mon Sep 17 00:00:00 2001 From: dignow Date: Sun, 6 Aug 2023 16:47:41 +0800 Subject: [PATCH] fix, reuse window type Signed-off-by: dignow --- flutter/lib/utils/multi_window_manager.dart | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/flutter/lib/utils/multi_window_manager.dart b/flutter/lib/utils/multi_window_manager.dart index 3287c52ed..194a0d13d 100644 --- a/flutter/lib/utils/multi_window_manager.dart +++ b/flutter/lib/utils/multi_window_manager.dart @@ -90,22 +90,21 @@ class RustDeskMultiWindowManager { ) async { if (separateWindow) { if (kCloseMultiWindowByHide && _inactiveWindows.isNotEmpty) { - final windowId = _inactiveWindows.first; - final invokeRes = - await DesktopMultiWindow.invokeMethod(windowId, methodName, msg); - final windowController = WindowController.fromWindowId(windowId); - windowController.show(); - registerActiveWindow(windowController.windowId); - windows.add(windowController.windowId); - return invokeRes; - } else { - await newSessionWindow(type, remoteId, msg, windows); + for (final windowId in windows) { + if (_inactiveWindows.contains(windowId)) { + await DesktopMultiWindow.invokeMethod( + windowId, methodName, msg); + WindowController.fromWindowId(windowId).show(); + registerActiveWindow(windowId); + } + } } + await newSessionWindow(type, remoteId, msg, windows); } else { if (windows.isEmpty) { await newSessionWindow(type, remoteId, msg, windows); } else { - return call(type, methodName, msg); + call(type, methodName, msg); } } }