diff --git a/flutter/lib/common.dart b/flutter/lib/common.dart index f5ebca3b7..d3d94baa2 100644 --- a/flutter/lib/common.dart +++ b/flutter/lib/common.dart @@ -1543,6 +1543,9 @@ Future restoreWindowPosition(WindowType type, bool isRemotePeerPos = false; String? pos; if (type == WindowType.RemoteDesktop && windowId != null && peerId != null) { + // If the restore position is called by main window, and the peer id is not null + // then we may need to get the position by reading the peer config. + // Because the session may not be read at this time. if (desktopType == DesktopType.main) { pos = bind.mainGetPeerFlutterConfigSync( id: peerId, k: kWindowPrefix + type.name); diff --git a/src/flutter_ffi.rs b/src/flutter_ffi.rs index d0106ae54..4a12ee19f 100644 --- a/src/flutter_ffi.rs +++ b/src/flutter_ffi.rs @@ -806,6 +806,8 @@ pub fn main_get_peer_option_sync(id: String, key: String) -> SyncReturn SyncReturn(get_peer_option(id, key)) } +// Sometimes we need to get the flutter config of a peer by reading the file. +// Because the session may not be established yet. pub fn main_get_peer_flutter_config_sync(id: String, k: String) -> SyncReturn { SyncReturn(get_peer_flutter_config(id, k)) }