mirror of
https://github.com/openharmony/windowmanager.git
synced 2026-07-23 13:35:31 -04:00
screen lock immersive bugifx
Change-Id: I348cac631693594e6ced97baa9bc5d7a304091b3 Signed-off-by: jincanran <jincanran@huawei.com>
This commit is contained in:
@@ -91,6 +91,7 @@ private:
|
|||||||
void RaiseWindowToTop(uint32_t windowId, std::vector<sptr<WindowNode>>& windowNodes);
|
void RaiseWindowToTop(uint32_t windowId, std::vector<sptr<WindowNode>>& windowNodes);
|
||||||
void MinimizeWindowFromAbility(const sptr<WindowNode>& node, bool fromUser);
|
void MinimizeWindowFromAbility(const sptr<WindowNode>& node, bool fromUser);
|
||||||
void ResetLayoutPolicy();
|
void ResetLayoutPolicy();
|
||||||
|
bool IsAboveSystemBarNode(sptr<WindowNode> node) const;
|
||||||
bool IsFullImmersiveNode(sptr<WindowNode> node) const;
|
bool IsFullImmersiveNode(sptr<WindowNode> node) const;
|
||||||
bool IsSplitImmersiveNode(sptr<WindowNode> node) const;
|
bool IsSplitImmersiveNode(sptr<WindowNode> node) const;
|
||||||
bool TraverseFromTopToBottom(sptr<WindowNode> node, const WindowNodeOperationFunc& func) const;
|
bool TraverseFromTopToBottom(sptr<WindowNode> node, const WindowNodeOperationFunc& func) const;
|
||||||
|
|||||||
@@ -402,6 +402,16 @@ uint32_t WindowNodeContainer::GetFocusWindow() const
|
|||||||
return focusedWindow_;
|
return focusedWindow_;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool WindowNodeContainer::IsAboveSystemBarNode(sptr<WindowNode> node) const
|
||||||
|
{
|
||||||
|
int32_t curPriority = zorderPolicy_->GetWindowPriority(node->GetWindowType());
|
||||||
|
if ((curPriority > zorderPolicy_->GetWindowPriority(WindowType::WINDOW_TYPE_STATUS_BAR)) &&
|
||||||
|
(curPriority > zorderPolicy_->GetWindowPriority(WindowType::WINDOW_TYPE_NAVIGATION_BAR))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
bool WindowNodeContainer::IsFullImmersiveNode(sptr<WindowNode> node) const
|
bool WindowNodeContainer::IsFullImmersiveNode(sptr<WindowNode> node) const
|
||||||
{
|
{
|
||||||
auto mode = node->GetWindowMode();
|
auto mode = node->GetWindowMode();
|
||||||
@@ -427,6 +437,9 @@ std::unordered_map<WindowType, SystemBarProperty> WindowNodeContainer::GetExpect
|
|||||||
for (auto& node : rootNodes) {
|
for (auto& node : rootNodes) {
|
||||||
for (auto iter = node->children_.rbegin(); iter < node->children_.rend(); ++iter) {
|
for (auto iter = node->children_.rbegin(); iter < node->children_.rend(); ++iter) {
|
||||||
auto& sysBarPropMapNode = (*iter)->GetSystemBarProperty();
|
auto& sysBarPropMapNode = (*iter)->GetSystemBarProperty();
|
||||||
|
if (IsAboveSystemBarNode(*iter)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
if (IsFullImmersiveNode(*iter)) {
|
if (IsFullImmersiveNode(*iter)) {
|
||||||
WLOGFI("Top immersive window id: %{public}d. Use full immersive prop", (*iter)->GetWindowId());
|
WLOGFI("Top immersive window id: %{public}d. Use full immersive prop", (*iter)->GetWindowId());
|
||||||
for (auto it : sysBarPropMap) {
|
for (auto it : sysBarPropMap) {
|
||||||
|
|||||||
Reference in New Issue
Block a user