From 8a2635cb9bd01dfa64f379353950c64bffafa249 Mon Sep 17 00:00:00 2001 From: zhanghaibo Date: Wed, 17 Jan 2024 20:24:17 +0800 Subject: [PATCH] not handle first change Signed-off-by: zhanghaibo Change-Id: I0321806283add3e7a8feca9ad592207e069d76a7 --- .../core/components_ng/pattern/bubble/bubble_pattern.cpp | 9 +++++++-- .../core/components_ng/pattern/menu/menu_pattern.cpp | 9 +++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/frameworks/core/components_ng/pattern/bubble/bubble_pattern.cpp b/frameworks/core/components_ng/pattern/bubble/bubble_pattern.cpp index a9d64e62eee..3db574f5c1a 100644 --- a/frameworks/core/components_ng/pattern/bubble/bubble_pattern.cpp +++ b/frameworks/core/components_ng/pattern/bubble/bubble_pattern.cpp @@ -103,9 +103,14 @@ void BubblePattern::OnAttachToFrameNode() CHECK_NULL_VOID(targetNode); auto eventHub = targetNode->GetEventHub(); CHECK_NULL_VOID(eventHub); - OnAreaChangedFunc onAreaChangedFunc = [popupNodeWk = WeakPtr(host)](const RectF& /* oldRect */, - const OffsetF& /* oldOrigin */, const RectF& /* rect */, + OnAreaChangedFunc onAreaChangedFunc = [popupNodeWk = WeakPtr(host)](const RectF& oldRect, + const OffsetF& oldOrigin, const RectF& /* rect */, const OffsetF& /* origin */) { + // Not handle first change + if (oldRect.IsEmpty() && oldOrigin.NonOffset()) { + return; + } + auto pipelineContext = PipelineContext::GetCurrentContext(); AnimationOption option; option.SetCurve(pipelineContext->GetSafeAreaManager()->GetSafeAreaCurve()); diff --git a/frameworks/core/components_ng/pattern/menu/menu_pattern.cpp b/frameworks/core/components_ng/pattern/menu/menu_pattern.cpp index ae5125be390..21f4b6c01af 100644 --- a/frameworks/core/components_ng/pattern/menu/menu_pattern.cpp +++ b/frameworks/core/components_ng/pattern/menu/menu_pattern.cpp @@ -166,9 +166,14 @@ void MenuPattern::OnAttachToFrameNode() CHECK_NULL_VOID(targetNode); auto eventHub = targetNode->GetEventHub(); CHECK_NULL_VOID(eventHub); - OnAreaChangedFunc onAreaChangedFunc = [menuNodeWk = WeakPtr(host)](const RectF& /* oldRect */, - const OffsetF& /* oldOrigin */, const RectF& /* rect */, + OnAreaChangedFunc onAreaChangedFunc = [menuNodeWk = WeakPtr(host)](const RectF& oldRect, + const OffsetF& oldOrigin, const RectF& /* rect */, const OffsetF& /* origin */) { + // Not handle first change + if (oldRect.IsEmpty() && oldOrigin.NonOffset()) { + return; + } + auto pipelineContext = PipelineContext::GetCurrentContext(); AnimationOption option; option.SetCurve(pipelineContext->GetSafeAreaManager()->GetSafeAreaCurve()); -- Gitee