From 3d9f9f235cc411b56fc3af72ac25e8384571a754 Mon Sep 17 00:00:00 2001 From: zhou-ke-0929 Date: Thu, 21 Aug 2025 09:53:17 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=AE=BE=E5=A4=87=E6=98=AF?= =?UTF-8?q?=E5=90=A6=E4=B8=BA=E6=8A=98=E5=8F=A0=E6=80=81pc=E7=9A=84?= =?UTF-8?q?=E5=88=A4=E5=AE=9A=E9=80=BB=E8=BE=91.Signed-off-by:=20.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: zhou-ke-0929 --- uitest/server/system_ui_controller.cpp | 36 ++++++++++++++------------ 1 file changed, 20 insertions(+), 16 deletions(-) diff --git a/uitest/server/system_ui_controller.cpp b/uitest/server/system_ui_controller.cpp index 42c61ab1..aa371d9f 100644 --- a/uitest/server/system_ui_controller.cpp +++ b/uitest/server/system_ui_controller.cpp @@ -380,8 +380,8 @@ namespace OHOS::uitest { displayId, ret); return false; } - auto hasVirtual = DisplayManager::GetInstance().GetDisplayById(VIRTUAL_DISPLAY_ID) != nullptr; - if (hasVirtual && displayId == 0) { + auto foldStatus = DisplayManager::GetInstance().GetFoldStatus(); + if (foldStatus == Rosen::FoldStatus::HALF_FOLD && displayId == 0) { vector windowsInVirtual; auto ret1 = ability->GetWindows(VIRTUAL_DISPLAY_ID, windowsInVirtual); LOG_D("GetWindows in display 999 from AccessibilityUITestAbility, ret: %{public}d", ret1); @@ -456,9 +456,9 @@ namespace OHOS::uitest { win.GetWindowLayer()); continue; } - LOG_I("window is visible, windowId: " - "%{public}d, active: %{public}d, focus: %{public}d, layer: %{public}d", - win.GetWindowId(), win.IsActive(), win.IsFocused(), win.GetWindowLayer()); + LOG_I("window is visible, windowId: %{public}d, active: %{public}d, focus: %{public}d," + "layer: %{public}d, displayId: %{public}" PRIu64 "", + win.GetWindowId(), win.IsActive(), win.IsFocused(), win.GetWindowLayer(), win.GetDisplayId()); Window winWrapper{win.GetWindowId()}; InflateWindowInfo(win, winWrapper); winWrapper.bounds_ = winRectInScreen; @@ -1118,17 +1118,21 @@ namespace OHOS::uitest { auto width = display->GetWidth(); auto height = display->GetHeight(); LOG_D("GetDisplaysize in display %{public}d, width: %{public}d, height: %{public}d", displayId, width, height); - auto virtualDisplay = displayMgr.GetDisplayById(VIRTUAL_DISPLAY_ID); - if (displayId == 0 && virtualDisplay != nullptr) { - auto virtualwidth = virtualDisplay->GetWidth(); - auto virtualheight = virtualDisplay->GetHeight(); - auto foldArea = GetFoldArea(); - auto foldAreaWidth = foldArea.right_ - foldArea.left_; - auto foldAreaHeight = foldArea.bottom_ - foldArea.top_; - LOG_D("GetDisplaysize in virtual display, width: %{public}d, height: %{public}d", - virtualwidth, virtualheight); - LOG_D("GetDisplaysize in foldArea, width: %{public}d, height: %{public}d", foldAreaWidth, foldAreaHeight); - height = height + virtualheight + foldAreaHeight; + auto foldStatus = displayMgr.GetFoldStatus(); + if (foldStatus == Rosen::FoldStatus::HALF_FOLD && displayId == 0) { + auto virtualDisplay = displayMgr.GetDisplayById(VIRTUAL_DISPLAY_ID); + if (virtualDisplay != nullptr) { + auto virtualwidth = virtualDisplay->GetWidth(); + auto virtualheight = virtualDisplay->GetHeight(); + auto foldArea = GetFoldArea(); + auto foldAreaWidth = foldArea.right_ - foldArea.left_; + auto foldAreaHeight = foldArea.bottom_ - foldArea.top_; + LOG_D("GetDisplaysize in virtual display, width: %{public}d, height: %{public}d", + virtualwidth, virtualheight); + LOG_D("GetDisplaysize in foldArea, width: %{public}d, height: %{public}d", foldAreaWidth, + foldAreaHeight); + height = height + virtualheight + foldAreaHeight; + } } Point result(width, height, displayId); return result; -- Gitee