diff --git a/frameworks/core/components_ng/pattern/ui_extension/ui_extension_pattern.cpp b/frameworks/core/components_ng/pattern/ui_extension/ui_extension_pattern.cpp index 8c7deda33e7143bd4696d1b090e9487a894d9e9e..43176bfd26d71a9873273197e633719b58419d9d 100644 --- a/frameworks/core/components_ng/pattern/ui_extension/ui_extension_pattern.cpp +++ b/frameworks/core/components_ng/pattern/ui_extension/ui_extension_pattern.cpp @@ -603,7 +603,11 @@ void UIExtensionPattern::DispatchDisplayArea(bool isForce) CHECK_NULL_VOID(sessionWrapper_); auto host = GetHost(); CHECK_NULL_VOID(host); - auto displayArea = host->GetTransformRectRelativeToWindow(); + auto [displayOffset, err] = host->GetPaintRectGlobalOffsetWithTranslate(); + auto geometryNode = host->GetGeometryNode(); + CHECK_NULL_VOID(geometryNode); + auto displaySize = geometryNode->GetFrameSize(); + auto displayArea = RectF(displayOffset, displaySize); if (displayArea_ != displayArea || isForce) { displayArea_ = displayArea; sessionWrapper_->RefreshDisplayArea(displayArea_);