diff --git a/window_scene/session/host/src/scene_session.cpp b/window_scene/session/host/src/scene_session.cpp index 02787dc383b402ef3970d64313b35da230778be9..0cf78fc049e9474aae94bf6106984ba52a93361d 100644 --- a/window_scene/session/host/src/scene_session.cpp +++ b/window_scene/session/host/src/scene_session.cpp @@ -4106,16 +4106,17 @@ void SceneSession::UpdateKeyFrameState(SizeChangeReason reason, const WSRect& re } { std::lock_guard lock(keyFrameMutex_); - if (!keyFramePolicy_.running_ || !keyFrameCloneNode_) { + if (!keyFramePolicy_.running_) { TLOGD(WmsLogTag::WMS_LAYOUT_PC, "key frame not start"); return; } if (reason == SizeChangeReason::DRAG_END) { keyFramePolicy_.running_ = false; keyFramePolicy_.stopping_ = true; + sessionStage_->SetKeyFramePolicy(keyFramePolicy_); } } - if (reason == SizeChangeReason::DRAG) { + if (reason == SizeChangeReason::DRAG && keyFrameCloneNode_ != nullptr) { TLOGD(WmsLogTag::WMS_LAYOUT_PC, "reset gravity and resize clone node"); uint64_t timeStamp = static_cast(std::chrono::duration_cast( std::chrono::system_clock::now().time_since_epoch()).count()); @@ -4130,8 +4131,6 @@ void SceneSession::UpdateKeyFrameState(SizeChangeReason reason, const WSRect& re keyFrameCloneNode_->SetFrame(0, 0, rect.width_, rect.height_); RSTransactionAdapter::FlushImplicitTransaction(GetRSUIContext()); } else if (reason == SizeChangeReason::DRAG_END) { - TLOGI(WmsLogTag::WMS_LAYOUT_PC, "key frame stopping"); - sessionStage_->SetKeyFramePolicy(keyFramePolicy_); keyFrameCloneNode_ = nullptr; } }