diff --git a/wmserver/src/window_node_container.cpp b/wmserver/src/window_node_container.cpp index b28d4615..28c924ab 100644 --- a/wmserver/src/window_node_container.cpp +++ b/wmserver/src/window_node_container.cpp @@ -130,17 +130,7 @@ WMError WindowNodeContainer::ShowStartingWindow(sptr& node) if (res != WMError::WM_OK) { return res; } - auto windowPair = displayGroupController_->GetWindowPairByDisplayId(node->GetDisplayId()); - if (windowPair == nullptr) { - WLOGFE("Window pair is nullptr"); - return WMError::WM_ERROR_NULLPTR; - } UpdateWindowTree(node); - windowPair->UpdateIfSplitRelated(node); - if (node->IsSplitMode() || node->GetWindowType() == WindowType::WINDOW_TYPE_DOCK_SLICE) { - RaiseSplitRelatedWindowToTop(node); - } - displayGroupController_->PreProcessWindowNode(node, WindowUpdateType::WINDOW_UPDATE_ADDED); StartingWindow::UpdateRSTree(node); AssignZOrder(); @@ -167,17 +157,7 @@ WMError WindowNodeContainer::AddWindowNode(sptr& node, sptrGetWindowPairByDisplayId(node->GetDisplayId()); - if (windowPair == nullptr) { - WLOGFE("Window pair is nullptr"); - return WMError::WM_ERROR_NULLPTR; - } UpdateWindowTree(node); - windowPair->UpdateIfSplitRelated(node); - if (node->IsSplitMode()) { - RaiseSplitRelatedWindowToTop(node); - } - displayGroupController_->PreProcessWindowNode(node, WindowUpdateType::WINDOW_UPDATE_ADDED); // add node on RSTree for (auto& displayId : node->GetShowingDisplays()) { @@ -188,7 +168,16 @@ WMError WindowNodeContainer::AddWindowNode(sptr& node, sptrstartingWindowShown_ = false; ReZOrderShowWhenLockedWindowIfNeeded(node); } - + auto windowPair = displayGroupController_->GetWindowPairByDisplayId(node->GetDisplayId()); + if (windowPair == nullptr) { + WLOGFE("Window pair is nullptr"); + return WMError::WM_ERROR_NULLPTR; + } + windowPair->UpdateIfSplitRelated(node); + if (node->IsSplitMode()) { + // raise the z-order of window pair + RaiseSplitRelatedWindowToTop(node); + } AssignZOrder(); layoutPolicy_->AddWindowNode(node); NotifyIfAvoidAreaChanged(node, AvoidControlType::AVOID_NODE_ADD);