解决用户切换原用户窗口不消失问题

Signed-off-by: dubj <dubingjian@huawei.com>
Change-Id: I4d6983bd670944ef80795ca0557f005a04c7602d
This commit is contained in:
dubj
2022-07-04 17:33:46 +08:00
parent 41048e95c1
commit 067dd657b1
9 changed files with 216 additions and 0 deletions
+19
View File
@@ -1892,5 +1892,24 @@ WindowLayoutMode WindowNodeContainer::GetCurrentLayoutMode() const
{
return layoutMode_;
}
void WindowNodeContainer::RemoveSingleUserWindowNodes()
{
std::vector<sptr<WindowNode>> windowNodes;
TraverseContainer(windowNodes);
for (auto& windowNode : windowNodes) {
if (windowNode->GetWindowType() == WindowType::WINDOW_TYPE_DESKTOP ||
windowNode->GetWindowType() == WindowType::WINDOW_TYPE_STATUS_BAR ||
windowNode->GetWindowType() == WindowType::WINDOW_TYPE_NAVIGATION_BAR ||
windowNode->GetWindowType() == WindowType::WINDOW_TYPE_KEYGUARD ||
windowNode->GetWindowType() == WindowType::WINDOW_TYPE_POINTER) {
continue;
}
WLOGFI("remove window %{public}s, windowId %{public}d",
windowNode->GetWindowName().c_str(), windowNode->GetWindowId());
windowNode->GetWindowProperty()->SetAnimationFlag(static_cast<uint32_t>(WindowAnimation::NONE));
RemoveWindowNode(windowNode);
}
}
} // namespace Rosen
} // namespace OHOS