From f602bf9aeae451c2de31a3a259ec1c0bcde8a2d7 Mon Sep 17 00:00:00 2001 From: xingyanan Date: Mon, 18 Jul 2022 19:23:33 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=88=86=E5=B1=8F=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E5=86=B7=E5=90=AF=E5=8A=A8=E9=85=8D=E5=AF=B9=E7=AA=97?= =?UTF-8?q?=E5=8F=A3=E9=97=AA=E9=80=80=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: xingyanan Change-Id: I21f9413495b29c06ebc3f66348c1102ee2be85ad Signed-off-by: xingyanan --- wmserver/src/window_node_container.cpp | 31 +++++++++----------------- 1 file changed, 10 insertions(+), 21 deletions(-) diff --git a/wmserver/src/window_node_container.cpp b/wmserver/src/window_node_container.cpp index 961de911..aa3f077d 100644 --- a/wmserver/src/window_node_container.cpp +++ b/wmserver/src/window_node_container.cpp @@ -129,17 +129,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(); @@ -166,17 +156,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()) { @@ -187,7 +167,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);