diff --git a/flutter/lib/main.dart b/flutter/lib/main.dart index 989ba12f5..e83c4b323 100644 --- a/flutter/lib/main.dart +++ b/flutter/lib/main.dart @@ -42,7 +42,9 @@ Future main(List args) async { if (args.isNotEmpty && args.first == 'multi_window') { windowId = int.parse(args[1]); stateGlobal.setWindowId(windowId!); - WindowController.fromWindowId(windowId!).showTitleBar(false); + if (!Platform.isMacOS) { + WindowController.fromWindowId(windowId!).showTitleBar(false); + } final argument = args[2].isEmpty ? {} : jsonDecode(args[2]) as Map; @@ -168,13 +170,14 @@ void runMultiWindow( ); switch (appType) { case kAppTypeDesktopRemote: - await restoreWindowPosition(WindowType.RemoteDesktop, windowId: windowId!); + await restoreWindowPosition(WindowType.RemoteDesktop, + windowId: windowId!); break; case kAppTypeDesktopFileTransfer: - await restoreWindowPosition(WindowType.FileTransfer, windowId: windowId!); + await restoreWindowPosition(WindowType.FileTransfer, windowId: windowId!); break; case kAppTypeDesktopPortForward: - await restoreWindowPosition(WindowType.PortForward, windowId: windowId!); + await restoreWindowPosition(WindowType.PortForward, windowId: windowId!); break; default: // no such appType diff --git a/flutter/macos/Runner/MainFlutterWindow.swift b/flutter/macos/Runner/MainFlutterWindow.swift index 688292371..2ebdf7fc0 100644 --- a/flutter/macos/Runner/MainFlutterWindow.swift +++ b/flutter/macos/Runner/MainFlutterWindow.swift @@ -1,7 +1,22 @@ import Cocoa import FlutterMacOS +import desktop_multi_window // import bitsdojo_window_macos +import desktop_drop +import device_info_plus_macos +import flutter_custom_cursor +import package_info_plus_macos +import path_provider_macos +import screen_retriever +import sqflite +import tray_manager +import uni_links_desktop +import url_launcher_macos +import wakelock_macos +import window_manager +import window_size + class MainFlutterWindow: NSWindow { override func awakeFromNib() { if (!rustdesk_core_main()){ @@ -14,6 +29,22 @@ class MainFlutterWindow: NSWindow { self.setFrame(windowFrame, display: true) RegisterGeneratedPlugins(registry: flutterViewController) + + FlutterMultiWindowPlugin.setOnWindowCreatedCallback { controller in + // Register the plugin which you want access from other isolate. + // DesktopLifecyclePlugin.register(with: controller.registrar(forPlugin: "DesktopLifecyclePlugin")) + DesktopDropPlugin.register(with: controller.registrar(forPlugin: "DesktopDropPlugin")) + DeviceInfoPlusMacosPlugin.register(with: controller.registrar(forPlugin: "DeviceInfoPlusMacosPlugin")) + FlutterCustomCursorPlugin.register(with: controller.registrar(forPlugin: "FlutterCustomCursorPlugin")) + FLTPackageInfoPlusPlugin.register(with: controller.registrar(forPlugin: "FLTPackageInfoPlusPlugin")) + PathProviderPlugin.register(with: controller.registrar(forPlugin: "PathProviderPlugin")) + SqflitePlugin.register(with: controller.registrar(forPlugin: "SqflitePlugin")) + TrayManagerPlugin.register(with: controller.registrar(forPlugin: "TrayManagerPlugin")) + UniLinksDesktopPlugin.register(with: controller.registrar(forPlugin: "UniLinksDesktopPlugin")) + UrlLauncherPlugin.register(with: controller.registrar(forPlugin: "UrlLauncherPlugin")) + WakelockMacosPlugin.register(with: controller.registrar(forPlugin: "WakelockMacosPlugin")) + WindowSizePlugin.register(with: controller.registrar(forPlugin: "WindowSizePlugin")) + } super.awakeFromNib() }