From 51bc2228a83c627660df70bec4c8c12c4a4b85b1 Mon Sep 17 00:00:00 2001 From: majian Date: Tue, 19 Aug 2025 14:37:34 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E4=B8=8E=E4=B8=BB=E5=B9=B2=E4=BF=9D=E6=8C=81=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: majian --- wm/include/window_scene_session_impl.h | 1 - wm/src/window_scene_session_impl.cpp | 31 +---- .../window_scene_session_impl_test5.cpp | 125 ------------------ 3 files changed, 2 insertions(+), 155 deletions(-) diff --git a/wm/include/window_scene_session_impl.h b/wm/include/window_scene_session_impl.h index 16a6b36097..d9282b801f 100644 --- a/wm/include/window_scene_session_impl.h +++ b/wm/include/window_scene_session_impl.h @@ -217,7 +217,6 @@ public: WSError NotifyCompatibleModePropertyChange(const sptr property) override; void HookDecorButtonStyleInCompatibleMode(uint32_t contentColor); WSError PcAppInPadNormalClose() override; - void HandleWindowLimitsInCompatibleMode(WindowSizeLimits& windowSizeLimits); /* * Free Multi Window diff --git a/wm/src/window_scene_session_impl.cpp b/wm/src/window_scene_session_impl.cpp index 64154ed9f7..afc0f1e078 100644 --- a/wm/src/window_scene_session_impl.cpp +++ b/wm/src/window_scene_session_impl.cpp @@ -1228,31 +1228,6 @@ static void GetWindowSizeLimits(std::shared_ptr ability windowSizeLimits.minWindowHeight : abilityInfo->minWindowHeight; } -void WindowSceneSessionImpl::HandleWindowLimitsInCompatibleMode(WindowSizeLimits& windowSizeLimits) -{ - if (!property_->IsWindowLimitDisabled()) { - return; - } - windowSizeLimits.maxWindowWidth = windowSystemConfig_.maxFloatingWindowSize_; - windowSizeLimits.maxWindowHeight = windowSystemConfig_.maxFloatingWindowSize_; - if (WindowHelper::IsMainWindow(GetType())) { - windowSizeLimits.minWindowWidth = windowSystemConfig_.miniWidthOfMainWindow_; - windowSizeLimits.minWindowHeight = windowSystemConfig_.miniHeightOfMainWindow_; - } else if (WindowHelper::IsSubWindow(GetType())) { - windowSizeLimits.minWindowWidth = windowSystemConfig_.miniWidthOfSubWindow_; - windowSizeLimits.minWindowHeight = windowSystemConfig_.miniHeightOfSubWindow_; - } else if (WindowHelper::IsDialogWindow(GetType())) { - windowSizeLimits.minWindowWidth = windowSystemConfig_.miniWidthOfDialogWindow_; - windowSizeLimits.minWindowHeight = windowSystemConfig_.miniHeightOfDialogWindow_; - } else { - windowSizeLimits.minWindowWidth = MIN_FLOATING_WIDTH; - windowSizeLimits.minWindowHeight = MIN_FLOATING_HEIGHT; - } - TLOGI(WmsLogTag::WMS_COMPAT, "maxWidth: %{public}u, minWidth: %{public}u, maxHeight: %{public}u, " - "minHeight: %{public}u", windowSizeLimits.maxWindowWidth, windowSizeLimits.minWindowWidth, - windowSizeLimits.maxWindowHeight, windowSizeLimits.minWindowHeight); -} - std::vector WindowSceneSessionImpl::ExtractSupportWindowModeFromMetaData( const std::shared_ptr& abilityInfo) { @@ -1300,9 +1275,6 @@ void WindowSceneSessionImpl::GetConfigurationFromAbilityInfo() if (abilityInfo != nullptr) { WindowSizeLimits windowSizeLimits = property_->GetWindowSizeLimits(); GetWindowSizeLimits(abilityInfo, windowSizeLimits); - if (property_->IsWindowLimitDisabled()) { - HandleWindowLimitsInCompatibleMode(windowSizeLimits); - } property_->SetConfigWindowLimitsVP({ windowSizeLimits.maxWindowWidth, windowSizeLimits.maxWindowHeight, windowSizeLimits.minWindowWidth, windowSizeLimits.minWindowHeight, @@ -5671,7 +5643,8 @@ WMError WindowSceneSessionImpl::GetWindowLimits(WindowLimits& windowLimits) void WindowSceneSessionImpl::UpdateNewSize() { if (GetWindowMode() != WindowMode::WINDOW_MODE_FLOATING || property_->IsWindowLimitDisabled()) { - TLOGI(WmsLogTag::WMS_LAYOUT, "Fullscreen couldnot update new size, Id: %{public}u", GetWindowId()); + TLOGI(WmsLogTag::WMS_LAYOUT, "fullscreen of compatible mode could not update new size, Id: %{public}u", + GetPersistentId()); return; } bool needResize = false; diff --git a/wm/test/unittest/window_scene_session_impl_test5.cpp b/wm/test/unittest/window_scene_session_impl_test5.cpp index 31187be9f8..9a5a1021c0 100644 --- a/wm/test/unittest/window_scene_session_impl_test5.cpp +++ b/wm/test/unittest/window_scene_session_impl_test5.cpp @@ -1820,131 +1820,6 @@ HWTEST_F(WindowSceneSessionImplTest5, StopMoveWindow, Function | SmallTest | Tes ASSERT_EQ(WmErrorCode::WM_OK, window->StopMoveWindow()); } -/** - * @tc.name: HandleWindowLimitsInCompatibleMode01 - * @tc.desc: HandleWindowLimitsInCompatibleMode - * @tc.type: FUNC - */ -HWTEST_F(WindowSceneSessionImplTest5, HandleWindowLimitsInCompatibleMode01, Function | SmallTest | Level2) -{ - sptr option = sptr::MakeSptr(); - sptr window = sptr::MakeSptr(option); - window->property_->SetPersistentId(1); - SessionInfo sessionInfo = {"CreateTestBundle", "CreateTestModule", "CreateTestAbility"}; - sptr session = sptr::MakeSptr(sessionInfo); - window->hostSession_ = session; - sptr compatibleModeProperty = sptr::MakeSptr(); - compatibleModeProperty->SetDisableWindowLimit(true); - window->property_->SetCompatibleModeProperty(compatibleModeProperty); - window->property_->SetWindowType(WindowType::APP_MAIN_WINDOW_BASE); - WindowSizeLimits windowSizeLimits = {0, 0, 0, 0}; - window->HandleWindowLimitsInCompatibleMode(windowSizeLimits); - EXPECT_EQ(windowSizeLimits.maxWindowWidth, window->windowSystemConfig_.maxFloatingWindowSize_); - EXPECT_EQ(windowSizeLimits.maxWindowHeight, window->windowSystemConfig_.maxFloatingWindowSize_); - EXPECT_EQ(windowSizeLimits.minWindowWidth, window->windowSystemConfig_.miniWidthOfMainWindow_); - EXPECT_EQ(windowSizeLimits.minWindowHeight, window->windowSystemConfig_.miniHeightOfMainWindow_); -} - -/** - * @tc.name: HandleWindowLimitsInCompatibleMode02 - * @tc.desc: HandleWindowLimitsInCompatibleMode - * @tc.type: FUNC - */ -HWTEST_F(WindowSceneSessionImplTest5, HandleWindowLimitsInCompatibleMode02, Function | SmallTest | Level2) -{ - sptr option = sptr::MakeSptr(); - sptr window = sptr::MakeSptr(option); - window->property_->SetPersistentId(1); - SessionInfo sessionInfo = {"CreateTestBundle", "CreateTestModule", "CreateTestAbility"}; - sptr session = sptr::MakeSptr(sessionInfo); - window->hostSession_ = session; - sptr compatibleModeProperty = sptr::MakeSptr(); - compatibleModeProperty->SetDisableWindowLimit(true); - window->property_->SetCompatibleModeProperty(compatibleModeProperty); - window->property_->SetWindowType(WindowType::APP_SUB_WINDOW_BASE); - WindowSizeLimits windowSizeLimits = {0, 0, 0, 0}; - window->HandleWindowLimitsInCompatibleMode(windowSizeLimits); - EXPECT_EQ(windowSizeLimits.maxWindowWidth, window->windowSystemConfig_.maxFloatingWindowSize_); - EXPECT_EQ(windowSizeLimits.maxWindowHeight, window->windowSystemConfig_.maxFloatingWindowSize_); - EXPECT_EQ(windowSizeLimits.minWindowWidth, window->windowSystemConfig_.miniWidthOfSubWindow_); - EXPECT_EQ(windowSizeLimits.minWindowHeight, window->windowSystemConfig_.miniHeightOfSubWindow_); -} - -/** - * @tc.name: HandleWindowLimitsInCompatibleMode03 - * @tc.desc: HandleWindowLimitsInCompatibleMode - * @tc.type: FUNC - */ -HWTEST_F(WindowSceneSessionImplTest5, HandleWindowLimitsInCompatibleMode03, Function | SmallTest | Level2) -{ - sptr option = sptr::MakeSptr(); - sptr window = sptr::MakeSptr(option); - window->property_->SetPersistentId(1); - SessionInfo sessionInfo = {"CreateTestBundle", "CreateTestModule", "CreateTestAbility"}; - sptr session = sptr::MakeSptr(sessionInfo); - window->hostSession_ = session; - sptr compatibleModeProperty = sptr::MakeSptr(); - compatibleModeProperty->SetDisableWindowLimit(true); - window->property_->SetCompatibleModeProperty(compatibleModeProperty); - window->property_->SetWindowType(WindowType::WINDOW_TYPE_DIALOG); - WindowSizeLimits windowSizeLimits = {0, 0, 0, 0}; - window->HandleWindowLimitsInCompatibleMode(windowSizeLimits); - EXPECT_EQ(windowSizeLimits.maxWindowWidth, window->windowSystemConfig_.maxFloatingWindowSize_); - EXPECT_EQ(windowSizeLimits.maxWindowHeight, window->windowSystemConfig_.maxFloatingWindowSize_); - EXPECT_EQ(windowSizeLimits.minWindowWidth, window->windowSystemConfig_.miniWidthOfDialogWindow_); - EXPECT_EQ(windowSizeLimits.minWindowHeight, window->windowSystemConfig_.miniHeightOfDialogWindow_); -} - -/** - * @tc.name: HandleWindowLimitsInCompatibleMode04 - * @tc.desc: HandleWindowLimitsInCompatibleMode - * @tc.type: FUNC - */ -HWTEST_F(WindowSceneSessionImplTest5, HandleWindowLimitsInCompatibleMode04, Function | SmallTest | Level2) -{ - sptr option = sptr::MakeSptr(); - sptr window = sptr::MakeSptr(option); - window->property_->SetPersistentId(1); - SessionInfo sessionInfo = {"CreateTestBundle", "CreateTestModule", "CreateTestAbility"}; - sptr session = sptr::MakeSptr(sessionInfo); - window->hostSession_ = session; - sptr compatibleModeProperty = sptr::MakeSptr(); - compatibleModeProperty->SetDisableWindowLimit(true); - window->property_->SetCompatibleModeProperty(compatibleModeProperty); - window->property_->SetWindowType(WindowType::SYSTEM_WINDOW_BASE); - WindowSizeLimits windowSizeLimits = {0, 0, 0, 0}; - window->HandleWindowLimitsInCompatibleMode(windowSizeLimits); - EXPECT_EQ(windowSizeLimits.maxWindowWidth, window->windowSystemConfig_.maxFloatingWindowSize_); - EXPECT_EQ(windowSizeLimits.maxWindowHeight, window->windowSystemConfig_.maxFloatingWindowSize_); - EXPECT_EQ(windowSizeLimits.minWindowWidth, MIN_FLOATING_WIDTH); - EXPECT_EQ(windowSizeLimits.minWindowHeight, MIN_FLOATING_HEIGHT); -} - -/** - * @tc.name: HandleWindowLimitsInCompatibleMode05 - * @tc.desc: HandleWindowLimitsInCompatibleMode - * @tc.type: FUNC - */ -HWTEST_F(WindowSceneSessionImplTest5, HandleWindowLimitsInCompatibleMode05, Function | SmallTest | Level2) -{ - sptr option = sptr::MakeSptr(); - sptr window = sptr::MakeSptr(option); - window->property_->SetPersistentId(1); - SessionInfo sessionInfo = {"CreateTestBundle", "CreateTestModule", "CreateTestAbility"}; - sptr session = sptr::MakeSptr(sessionInfo); - window->hostSession_ = session; - sptr compatibleModeProperty = sptr::MakeSptr(); - compatibleModeProperty->SetDisableWindowLimit(true); - window->property_->SetCompatibleModeProperty(compatibleModeProperty); - window->property_->SetWindowType(WindowType::APP_MAIN_WINDOW_BASE); - WindowSizeLimits windowSizeLimits = {0, 0, 0, 0}; - window->HandleWindowLimitsInCompatibleMode(windowSizeLimits); - EXPECT_EQ(windowSizeLimits.maxWindowWidth, 0); - EXPECT_EQ(windowSizeLimits.maxWindowHeight, 0); - EXPECT_EQ(windowSizeLimits.minWindowWidth, 0); - EXPECT_EQ(windowSizeLimits.minWindowHeight, 0); -} - /** * @tc.name: IsDecorEnable1 * @tc.desc: IsDecorEnable1 -- Gitee From 107b49b182c9b2ed025283a37f34e8a84f1fd4ae Mon Sep 17 00:00:00 2001 From: majian Date: Wed, 20 Aug 2025 16:21:13 +0800 Subject: [PATCH 2/2] update Signed-off-by: majian --- wm/src/window_session_impl.cpp | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/wm/src/window_session_impl.cpp b/wm/src/window_session_impl.cpp index f40c22ad75..1eeff8861b 100644 --- a/wm/src/window_session_impl.cpp +++ b/wm/src/window_session_impl.cpp @@ -2926,15 +2926,14 @@ void WindowSessionImpl::SetRequestedOrientation(Orientation orientation, bool ne if (!isNeededForciblySetOrientation(orientation)) { return; } + if (property_->IsSupportRotateFullScreen()) { + TLOGI(WmsLogTag::WMS_COMPAT, "compatible request orientation %{public}u", orientation); + property_->SetIsLayoutFullScreen(IsHorizontalOrientation(orientation)); + } if (needAnimation) { NotifyPreferredOrientationChange(orientation); SetUserRequestedOrientation(orientation); } - // when compatible mode disable fullscreen and request orientation, will enter into immersive mode - if (property_->IsFullScreenDisabled() && IsHorizontalOrientation(orientation)) { - TLOGI(WmsLogTag::WMS_COMPAT, "compatible request horizontal orientation %{public}u", orientation); - property_->SetIsLayoutFullScreen(true); - } // the orientation of the invalid type is only applied to pageRotation. if (orientation == Orientation::INVALID) { Orientation requestedOrientation = ConvertInvalidOrientation(); -- Gitee