mirror of
https://github.com/openharmony/windowmanager.git
synced 2026-07-19 17:08:11 -04:00
modify split mode can not controll dock window
Signed-off-by: leafly2021 <figo.yefei@huawei.com> Change-Id: I7b992fae598d99783a220108562cabb8e6e398d3
This commit is contained in:
@@ -64,6 +64,11 @@ public:
|
||||
return ((IsMainWindow(type)) && (mode == WindowMode::WINDOW_MODE_FULLSCREEN));
|
||||
}
|
||||
|
||||
static inline bool IsMainNotFloatingWindow(WindowType type, WindowMode mode)
|
||||
{
|
||||
return ((IsMainWindow(type)) && (mode != WindowMode::WINDOW_MODE_FLOATING));
|
||||
}
|
||||
|
||||
static inline bool IsFloatintWindow(WindowMode mode)
|
||||
{
|
||||
return mode == WindowMode::WINDOW_MODE_FLOATING;
|
||||
|
||||
@@ -260,7 +260,6 @@ WMError WindowNodeContainer::RemoveWindowNode(sptr<WindowNode>& node)
|
||||
WLOGFE("window node or surface node is nullptr, invalid");
|
||||
return WMError::WM_ERROR_DESTROYED_OBJECT;
|
||||
}
|
||||
|
||||
if (node->parent_ == nullptr) {
|
||||
WLOGFW("can't find parent of this node");
|
||||
} else {
|
||||
@@ -280,7 +279,6 @@ WMError WindowNodeContainer::RemoveWindowNode(sptr<WindowNode>& node)
|
||||
child->GetCallingUid(), false, child->GetWindowType()));
|
||||
}
|
||||
}
|
||||
|
||||
// Remove node from RSTree
|
||||
for (auto& displayId : node->GetShowingDisplays()) {
|
||||
UpdateRSTree(node, displayId, false, node->isPlayAnimationHide_);
|
||||
@@ -291,13 +289,14 @@ WMError WindowNodeContainer::RemoveWindowNode(sptr<WindowNode>& node)
|
||||
displayGroupController_->UpdateDisplayGroupWindowTree();
|
||||
|
||||
layoutPolicy_->RemoveWindowNode(node);
|
||||
WindowMode lastMode = node->GetWindowMode();
|
||||
if (HandleRemoveWindow(node) != WMError::WM_OK) {
|
||||
return WMError::WM_ERROR_NULLPTR;
|
||||
}
|
||||
NotifyIfAvoidAreaChanged(node, AvoidControlType::AVOID_NODE_REMOVE);
|
||||
if (WindowHelper::IsMainFullScreenWindow(node->GetWindowType(), node->GetWindowMode())) {
|
||||
if (WindowHelper::IsMainNotFloatingWindow(node->GetWindowType(), lastMode)) {
|
||||
NotifyDockWindowStateChanged(node, true);
|
||||
}
|
||||
NotifyIfAvoidAreaChanged(node, AvoidControlType::AVOID_NODE_REMOVE);
|
||||
UpdateWindowVisibilityInfos(infos);
|
||||
DumpScreenWindowTree();
|
||||
NotifyAccessibilityWindowInfo(node, WindowUpdateType::WINDOW_UPDATE_REMOVED);
|
||||
|
||||
Reference in New Issue
Block a user