mirror of
https://github.com/openharmony/window_window_manager.git
synced 2026-08-25 13:10:03 -04:00
Resolve review comments' problems
Signed-off-by: pengxin <pengxin33@huawei.com> Change-Id: Ide86a0245cacfa727343400024ab4b734dc94a20
This commit is contained in:
+2
-1
@@ -198,7 +198,8 @@ bool Screen::SetDensityDpi(uint32_t dpi) const
|
||||
DOT_PER_INCH_MINIMIM_VALUE, DOT_PER_INCH_MAXIMUM_VALUE);
|
||||
return false;
|
||||
}
|
||||
float density = float(dpi) / 160.0; // calculate display density
|
||||
// Calculate display density, Density = Dpi / 160.
|
||||
float density = static_cast<float>(dpi) / 160; // 160 is the coefficient between density and dpi.
|
||||
return SingletonContainer::Get<ScreenManagerAdapter>().SetVirtualPixelRatio(GetId(), density);
|
||||
}
|
||||
} // namespace OHOS::Rosen
|
||||
@@ -327,7 +327,6 @@ HWTEST_F(DisplayChangeTest, CheckDisplaySizeChange02, Function | MediumTest | Le
|
||||
*/
|
||||
HWTEST_F(DisplayChangeTest, CheckScreenDensityChange01, Function | SmallTest | Level2)
|
||||
{
|
||||
auto modes = defaultScreen_->GetSupportedModes();
|
||||
uint32_t densityDpi = 320;
|
||||
ASSERT_EQ(true, defaultScreen_->SetDensityDpi(densityDpi));
|
||||
sleep(SPLIT_TEST_SLEEP_S);
|
||||
@@ -340,7 +339,6 @@ HWTEST_F(DisplayChangeTest, CheckScreenDensityChange01, Function | SmallTest | L
|
||||
*/
|
||||
HWTEST_F(DisplayChangeTest, CheckScreenDensityChange02, Function | SmallTest | Level2)
|
||||
{
|
||||
auto modes = defaultScreen_->GetSupportedModes();
|
||||
uint32_t densityDpi = 80;
|
||||
ASSERT_EQ(true, defaultScreen_->SetDensityDpi(densityDpi));
|
||||
sleep(SPLIT_TEST_SLEEP_S);
|
||||
@@ -353,7 +351,6 @@ HWTEST_F(DisplayChangeTest, CheckScreenDensityChange02, Function | SmallTest | L
|
||||
*/
|
||||
HWTEST_F(DisplayChangeTest, CheckScreenDensityChange03, Function | SmallTest | Level2)
|
||||
{
|
||||
auto modes = defaultScreen_->GetSupportedModes();
|
||||
uint32_t densityDpi = 160;
|
||||
ASSERT_EQ(true, defaultScreen_->SetDensityDpi(densityDpi));
|
||||
sleep(SPLIT_TEST_SLEEP_S);
|
||||
|
||||
@@ -53,7 +53,7 @@ private:
|
||||
void OnAbstractScreenChange(sptr<AbstractScreen> absScreen, DisplayChangeEvent event);
|
||||
void ProcessDisplayUpdateOrientation(sptr<AbstractScreen> absScreen);
|
||||
void ProcessDisplaySizeChange(sptr<AbstractScreen> absScreen);
|
||||
void ProcessDisplayDensityChange(sptr<AbstractScreen> absScreen);
|
||||
void ProcessVirtualPixelRatioChange(sptr<AbstractScreen> absScreen);
|
||||
void BindAloneScreenLocked(sptr<AbstractScreen> absScreen);
|
||||
void AddScreenToMirrorLocked(sptr<AbstractScreen> absScreen);
|
||||
void AddScreenToExpandLocked(sptr<AbstractScreen> absScreen);
|
||||
|
||||
@@ -248,7 +248,7 @@ void AbstractDisplayController::OnAbstractScreenChange(sptr<AbstractScreen> absS
|
||||
} else if (event == DisplayChangeEvent::DISPLAY_SIZE_CHANGED) {
|
||||
ProcessDisplaySizeChange(absScreen);
|
||||
} else if (event == DisplayChangeEvent::DISPLAY_VIRTUAL_PIXEL_RATIO_CHANGED) {
|
||||
ProcessDisplayDensityChange(absScreen);
|
||||
ProcessVirtualPixelRatioChange(absScreen);
|
||||
} else {
|
||||
WLOGE("unknown screen change event. id:%{public}" PRIu64" event %{public}u", absScreen->dmsId_, event);
|
||||
}
|
||||
@@ -350,7 +350,7 @@ bool AbstractDisplayController::UpdateDisplaySize(sptr<AbstractDisplay> absDispl
|
||||
return true;
|
||||
}
|
||||
|
||||
void AbstractDisplayController::ProcessDisplayDensityChange(sptr<AbstractScreen> absScreen)
|
||||
void AbstractDisplayController::ProcessVirtualPixelRatioChange(sptr<AbstractScreen> absScreen)
|
||||
{
|
||||
sptr<AbstractDisplay> abstractDisplay = nullptr;
|
||||
{
|
||||
@@ -365,6 +365,10 @@ void AbstractDisplayController::ProcessDisplayDensityChange(sptr<AbstractScreen>
|
||||
}
|
||||
}
|
||||
}
|
||||
if (abstractDisplay == nullptr) {
|
||||
WLOGE("Failed to find abstract display of the screen.");
|
||||
return;
|
||||
}
|
||||
abstractDisplay->SetVirtualPixelRatio(absScreen->virtualPixelRatio_);
|
||||
// Notify virtual pixel ratio change event to WMS
|
||||
displayStateChangeListener_(abstractDisplay->GetId(), DisplayStateChangeType::VIRTUAL_PIXEL_RATIO_CHANGE);
|
||||
|
||||
@@ -89,8 +89,6 @@ public:
|
||||
void SetMinimizedByOther(bool isMinimizedByOther);
|
||||
void GetModeChangeHotZones(DisplayId displayId,
|
||||
ModeChangeHotZones& hotZones, const ModeChangeHotZonesConfig& config);
|
||||
void SetLastVirutalPixelRatio(DisplayId displayId, float virtualPixelRatio);
|
||||
float GetLastVirtualPixelRatio(DisplayId displayId);
|
||||
void UpdateVirtualPixelRatio(DisplayId displayId, float virtualPixelRatio);
|
||||
|
||||
private:
|
||||
@@ -143,8 +141,6 @@ private:
|
||||
uint32_t focusedWindow_ { INVALID_WINDOW_ID };
|
||||
uint32_t activeWindow_ = INVALID_WINDOW_ID;
|
||||
|
||||
std::map<DisplayId, float> lastVirtualPixelRatioMap_;
|
||||
|
||||
sptr<AvoidAreaController> avoidController_;
|
||||
sptr<WindowZorderPolicy> zorderPolicy_ = new WindowZorderPolicy();
|
||||
std::unordered_map<WindowLayoutMode, sptr<WindowLayoutPolicy>> layoutPolicys_;
|
||||
|
||||
@@ -1593,30 +1593,11 @@ void WindowNodeContainer::GetModeChangeHotZones(DisplayId displayId, ModeChangeH
|
||||
hotZones.secondary_.height_ = displayRect.height_;
|
||||
}
|
||||
|
||||
void WindowNodeContainer::SetLastVirutalPixelRatio(DisplayId displayId, float virtualPixelRatio)
|
||||
{
|
||||
lastVirtualPixelRatioMap_[displayId] = virtualPixelRatio;
|
||||
}
|
||||
|
||||
float WindowNodeContainer::GetLastVirtualPixelRatio(DisplayId displayId)
|
||||
{
|
||||
if (lastVirtualPixelRatioMap_.find(displayId) == lastVirtualPixelRatioMap_.end()) {
|
||||
WLOGE("cannot find last virtual pixel ratio for display: %{public}" PRIu64"", displayId);
|
||||
return -1;
|
||||
}
|
||||
return lastVirtualPixelRatioMap_[displayId];
|
||||
}
|
||||
|
||||
void WindowNodeContainer::UpdateVirtualPixelRatio(DisplayId displayId, float virtualPixelRatio)
|
||||
{
|
||||
if (fabs(GetLastVirtualPixelRatio(displayId) - virtualPixelRatio) > 1e-6) {
|
||||
layoutPolicy_->SetVirtualPixelRatioChangedFlag(true);
|
||||
SetLastVirutalPixelRatio(displayId, virtualPixelRatio);
|
||||
}
|
||||
layoutPolicy_->SetVirtualPixelRatioChangedFlag(true);
|
||||
layoutPolicy_->LayoutWindowTree(displayId);
|
||||
if (layoutPolicy_->GetVirtualPixelRatioChangedFlag()) {
|
||||
layoutPolicy_->SetVirtualPixelRatioChangedFlag(false);
|
||||
}
|
||||
layoutPolicy_->SetVirtualPixelRatioChangedFlag(false);
|
||||
}
|
||||
} // namespace Rosen
|
||||
} // namespace OHOS
|
||||
|
||||
Reference in New Issue
Block a user