diff --git a/wm/include/window_scene_session_impl.h b/wm/include/window_scene_session_impl.h index 16a6b36097043d9b1bac3b60f562c063867f314b..d9282b801fb1b5b7da0298e0f0a30ff5792a8fb1 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 64154ed9f74ddd699dd01e47d572a254715663d5..afc0f1e078982f5235cd66ab8ea4d8f8bb6b1f46 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/src/window_session_impl.cpp b/wm/src/window_session_impl.cpp index f40c22ad7528eb7ee0581211e78782b5be7ab893..1eeff8861b5a0000698d910995a04f4372505785 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(); diff --git a/wm/test/unittest/window_scene_session_impl_test5.cpp b/wm/test/unittest/window_scene_session_impl_test5.cpp index 31187be9f832604b987c04e39e2b5d07ba167cb9..9a5a1021c01ef40f7de1feceff05c75e8674d34e 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