diff --git a/window_scene/session/host/src/sub_session.cpp b/window_scene/session/host/src/sub_session.cpp index 307d48786633037516a34ecabd844a30a051e8f9..31f2fa2d8d29fe5932912ba8837b20a908b2cf88 100644 --- a/window_scene/session/host/src/sub_session.cpp +++ b/window_scene/session/host/src/sub_session.cpp @@ -452,16 +452,16 @@ void SubSession::HandleCrossMoveToSurfaceNode(WSRect& globalRect) continue; } movedSurfaceNode->SetPositionZ(GetZOrder()); + movedSurfaceNode->SetIsCrossNode(true); + RSTransactionAdapter::FlushImplicitTransaction(movedSurfaceNode->GetRSUIContext()); { AutoRSTransaction trans(screenSession->GetRSUIContext()); screenSession->GetDisplayNode()->AddCrossScreenChild(movedSurfaceNode, SUFFIX_INDEX, true); } cloneNodeCount_++; - movedSurfaceNode->SetIsCrossNode(true); TLOGI(WmsLogTag::WMS_LAYOUT, "Add sub window to display:%{public}" PRIu64 " persistentId:%{public}d", displayId, GetPersistentId()); } - RSTransactionAdapter::FlushImplicitTransaction(movedSurfaceNode->GetRSUIContext()); } std::set SubSession::GetNewDisplayIdsDuringMoveTo(WSRect& newRect) @@ -520,16 +520,16 @@ void SubSession::AddSurfaceNodeToScreen(DisplayId draggingOrMovingParentDisplayI continue; } currSurfacedNode->SetPositionZ(GetZOrder()); + currSurfacedNode->SetIsCrossNode(true); + RSTransactionAdapter::FlushImplicitTransaction(currSurfacedNode->GetRSUIContext()); { AutoRSTransaction trans(screenSession->GetRSUIContext()); screenSession->GetDisplayNode()->AddCrossScreenChild(currSurfacedNode, SUFFIX_INDEX, true); } cloneNodeCount_++; - currSurfacedNode->SetIsCrossNode(true); TLOGI(WmsLogTag::WMS_LAYOUT, "Add sub window to display:%{public}" PRIu64 " persistentId:%{public}d, " "cloneNodeCount:%{public}d", displayId, GetPersistentId(), cloneNodeCount_); } - RSTransactionAdapter::FlushImplicitTransaction(currSurfacedNode->GetRSUIContext()); } void SubSession::RemoveSurfaceNodeFromScreen()