From b125494ea4e6968e056772fe1bd78f8c00a65fa5 Mon Sep 17 00:00:00 2001 From: peixu Date: Tue, 18 Aug 2026 23:03:44 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=B9=B6=E5=8F=91=E8=B5=8B?= =?UTF-8?q?=E5=80=BCliveCreaseRegion=5F=E5=AF=BC=E8=87=B4=E7=9A=84?= =?UTF-8?q?=E5=86=85=E5=AD=98=E9=A3=8E=E9=99=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: peixu --- .../include/fold_screen_controller/super_fold_state_manager.h | 1 + .../src/fold_screen_controller/super_fold_state_manager.cpp | 1 + 2 files changed, 2 insertions(+) diff --git a/window_scene/screen_session_manager/include/fold_screen_controller/super_fold_state_manager.h b/window_scene/screen_session_manager/include/fold_screen_controller/super_fold_state_manager.h index 174c519b96..f46fbb02cd 100644 --- a/window_scene/screen_session_manager/include/fold_screen_controller/super_fold_state_manager.h +++ b/window_scene/screen_session_manager/include/fold_screen_controller/super_fold_state_manager.h @@ -96,6 +96,7 @@ private: FoldCreaseRegion GetFoldCreaseRegion(bool isVertical, bool isNeedReverse) const; void GetFoldCreaseRect(bool isVertical, bool isNeedReverse, const std::vector& foldRect, std::vector& foldCreaseRect) const; + mutable std::mutex liveCreaseRegionMutex_; std::mutex superStatusMutex_; std::vector superFoldCreaseRegionItems_; diff --git a/window_scene/screen_session_manager/src/fold_screen_controller/super_fold_state_manager.cpp b/window_scene/screen_session_manager/src/fold_screen_controller/super_fold_state_manager.cpp index e09fd053cc..c368bcc1d6 100644 --- a/window_scene/screen_session_manager/src/fold_screen_controller/super_fold_state_manager.cpp +++ b/window_scene/screen_session_manager/src/fold_screen_controller/super_fold_state_manager.cpp @@ -515,6 +515,7 @@ sptr SuperFoldStateManager::GetCurrentFoldCreaseRegion() FoldCreaseRegion SuperFoldStateManager::GetLiveCreaseRegion() { TLOGI(WmsLogTag::DMS, "enter"); + std::lock_guard lock_mode(liveCreaseRegionMutex_); SuperFoldStatus curFoldState = ScreenSessionManager::GetInstance().GetSuperFoldStatus(); if (curFoldState == SuperFoldStatus::UNKNOWN || curFoldState == SuperFoldStatus::FOLDED) { return FoldCreaseRegion(0, {});