diff --git a/flutter/lib/utils/multi_window_manager.dart b/flutter/lib/utils/multi_window_manager.dart index 224052bff..550e9ab08 100644 --- a/flutter/lib/utils/multi_window_manager.dart +++ b/flutter/lib/utils/multi_window_manager.dart @@ -43,11 +43,14 @@ class RustDeskMultiWindowManager { Future<dynamic> newRemoteDesktop(String remoteId, {String? switch_uuid}) async { - final msg = jsonEncode({ + var params = { "type": WindowType.RemoteDesktop.index, "id": remoteId, - "switch_uuid": switch_uuid ?? "" - }); + }; + if (switch_uuid != null) { + params['switch_uuid'] = switch_uuid; + } + final msg = jsonEncode(params); try { final ids = await DesktopMultiWindow.getAllSubWindowIds(); diff --git a/src/core_main.rs b/src/core_main.rs index 714502e85..89a962f1d 100644 --- a/src/core_main.rs +++ b/src/core_main.rs @@ -304,9 +304,13 @@ fn core_main_invoke_new_connection(mut args: std::env::Args) -> Option<Vec<Strin switch_uuid = args.next(); } } + let mut param_array = vec![]; + if switch_uuid.is_some() { + let switch_uuid = switch_uuid.map_or("".to_string(), |p| format!("switch_uuid={}", p)); + param_array.push(switch_uuid); + } - let switch_uuid = switch_uuid.map_or("".to_string(), |p| format!("switch_uuid={}", p)); - let params = vec![switch_uuid].join("&"); + let params = param_array.join("&"); let params_flag = if params.is_empty() { "" } else { "?" }; #[allow(unused)] let uni_links = format!(