diff --git a/flutter/lib/models/model.dart b/flutter/lib/models/model.dart index a77b3b238..ba6c50ac0 100644 --- a/flutter/lib/models/model.dart +++ b/flutter/lib/models/model.dart @@ -1656,13 +1656,13 @@ class FFI { final cb = ffiModel.startEventListener(sessionId, id); final useTextureRender = bind.mainUseTextureRender(); - final SimpleWrapper isCacheRestored = SimpleWrapper(false); + final SimpleWrapper isToNewWindowNotified = SimpleWrapper(false); // Preserved for the rgba data. stream.listen((message) { if (closed) return; - if (isSessionAdded && !isCacheRestored.value) { - bind.sessionRestoreCache(sessionId: sessionId); - isCacheRestored.value = true; + if (isSessionAdded && !isToNewWindowNotified.value) { + bind.sessionReadyToNewWindow(sessionId: sessionId); + isToNewWindowNotified.value = true; } () async { if (message is EventToUI_Event) { diff --git a/src/flutter_ffi.rs b/src/flutter_ffi.rs index 05819dfd8..0a93ac58c 100644 --- a/src/flutter_ffi.rs +++ b/src/flutter_ffi.rs @@ -601,10 +601,11 @@ pub fn session_change_resolution(session_id: SessionID, display: i32, width: i32 } } -pub fn session_restore_cache(session_id: SessionID) { +pub fn session_ready_to_new_window(session_id: SessionID) { #[cfg(not(any(target_os = "android", target_os = "ios")))] if let Some(session) = SESSIONS.write().unwrap().get_mut(&session_id) { session.restore_flutter_cache(); + session.refresh_video(); } }