From 769e46d3e6fa978d061405de29d73612f27fc177 Mon Sep 17 00:00:00 2001 From: 21pages Date: Wed, 5 Jul 2023 15:51:33 +0800 Subject: [PATCH] fix cm window_on_top when behind other window Signed-off-by: 21pages --- flutter/lib/common.dart | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/flutter/lib/common.dart b/flutter/lib/common.dart index 41fa826b8..d40a4e899 100644 --- a/flutter/lib/common.dart +++ b/flutter/lib/common.dart @@ -545,16 +545,25 @@ closeConnection({String? id}) { } } -void window_on_top(int? id) { +void window_on_top(int? id) async { if (!isDesktop) { return; } if (id == null) { print("Bring window on top"); // main window - windowManager.restore(); - windowManager.show(); - windowManager.focus(); + if (desktopType == DesktopType.cm && + !(await windowManager.isMinimized() || + !await windowManager.isVisible())) { + await windowManager.setAlwaysOnTop(true); + Future.delayed(Duration(microseconds: 500), () async { + windowManager.setAlwaysOnTop(false); + }); + } else { + windowManager.restore(); + windowManager.show(); + windowManager.focus(); + } rustDeskWinManager.registerActiveWindow(kWindowMainId); } else { WindowController.fromWindowId(id)