diff --git a/wm/src/window_scene_session_impl.cpp b/wm/src/window_scene_session_impl.cpp index 188ceb35fb86cab0d3f20ea5f6f3d748f95c86e8..b8f483f536d7881a2bf9f513f97b27c4d85d2ddb 100644 --- a/wm/src/window_scene_session_impl.cpp +++ b/wm/src/window_scene_session_impl.cpp @@ -1669,6 +1669,10 @@ WMError WindowSceneSessionImpl::NotifySpecificWindowSessionProperty(WindowType t } if (type == WindowType::WINDOW_TYPE_STATUS_BAR) { UpdateProperty(WSPropertyChangeAction::ACTION_UPDATE_STATUS_PROPS); + std::shared_ptr uiContent = GetUIContentSharedPtr(); + if (uiContent != nullptr) { + uiContent->SetStatusBarItemColor(property.contentColor_); + } } else if (type == WindowType::WINDOW_TYPE_NAVIGATION_BAR) { UpdateProperty(WSPropertyChangeAction::ACTION_UPDATE_NAVIGATION_PROPS); } else if (type == WindowType::WINDOW_TYPE_NAVIGATION_INDICATOR) { @@ -1686,7 +1690,8 @@ WMError WindowSceneSessionImpl::SetSpecificBarProperty(WindowType type, const Sy if (!((state_ > WindowState::STATE_INITIAL) && (state_ < WindowState::STATE_BOTTOM))) { TLOGE(WmsLogTag::WMS_IMMS, "windowId:%{public}u state is invalid", GetWindowId()); return WMError::WM_ERROR_INVALID_WINDOW; - } else if (GetSystemBarPropertyByType(type) == property) { + } else if (GetSystemBarPropertyByType(type) == property && + property.settingFlag_ == SystemBarSettingFlag::DEFAULT_SETTING) { setSameSystembarPropertyCnt_++; TLOGI(WmsLogTag::WMS_IMMS, "windowId:%{public}u %{public}s set same property %{public}u times, " "type:%{public}u, enable:%{public}u bgColor:%{public}x Color:%{public}x enableAnim:%{public}u",