Skip to content

Commit 3c4c280

Browse files
committed
fix(ohos): fix dimensions of window for pc
1 parent 0f40516 commit 3c4c280

File tree

2 files changed

+17
-14
lines changed

2 files changed

+17
-14
lines changed

framework/ohos/src/main/ets/hippy_framework/HippyEngineManagerImpl.ets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -466,7 +466,7 @@ export class HippyEngineManagerImpl implements HippyEngine, FrameworkProxy, DevS
466466
if (!context) {
467467
return;
468468
}
469-
let dimensionMap = await DimensionsUtil.getDimensions(-1, -1, context);
469+
let dimensionMap = await DimensionsUtil.getDimensions(width, height, context);
470470
let dimensionW: number = 0;
471471
let dimensionH: number = 0;
472472
if (dimensionMap) {

framework/ohos/src/main/ets/support/utils/DimensionsUtil.ets

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,20 +43,23 @@ export class DimensionsUtil {
4343
await DimensionsUtil.getStatusBarHeight(displayClass);
4444
let dimensionMap = new Map<string, HippyValue | Map<string, HippyValue>>()
4545

46-
let windowRect = await DimensionsUtil.getLastWindowRect(context);
47-
let w = 0;
48-
let h = 0;
49-
if (windowRect.width > 0 && windowRect.height > 0) {
50-
w = windowRect.width;
51-
h = windowRect.height;
52-
} else {
53-
w = displayClass.width;
54-
h = displayClass.height;
46+
let wwPixels = ww * displayClass.densityPixels;
47+
let whPixels = wh * displayClass.densityPixels;
48+
49+
if (wwPixels < 0 || whPixels < 0) {
50+
let windowRect = await DimensionsUtil.getLastWindowRect(context);
51+
if (windowRect.width > 0 && windowRect.height > 0) {
52+
wwPixels = windowRect.width;
53+
whPixels = windowRect.height;
54+
} else {
55+
wwPixels = displayClass.width;
56+
whPixels = displayClass.height;
57+
}
5558
}
5659

5760
let windowDisplayMetricsMap = new Map<string, HippyValue>()
58-
windowDisplayMetricsMap.set("width", ww >= 0 ? ww : w);
59-
windowDisplayMetricsMap.set("height", wh >= 0 ? wh : h);
61+
windowDisplayMetricsMap.set("width", wwPixels);
62+
windowDisplayMetricsMap.set("height", whPixels);
6063
windowDisplayMetricsMap.set("scale", displayClass.densityPixels / PixelUtil.getDensityScale());
6164
windowDisplayMetricsMap.set("fontScale", displayClass.scaledDensity / PixelUtil.getDensityScale());
6265
windowDisplayMetricsMap.set("densityDpi", displayClass.densityDPI / PixelUtil.getDensityScale());
@@ -65,8 +68,8 @@ export class DimensionsUtil {
6568
dimensionMap.set("windowPhysicalPixels", windowDisplayMetricsMap);
6669

6770
let screenDisplayMetricsMap = new Map<string, HippyValue>()
68-
screenDisplayMetricsMap.set("width", w);
69-
screenDisplayMetricsMap.set("height", h);
71+
screenDisplayMetricsMap.set("width", displayClass.width);
72+
screenDisplayMetricsMap.set("height", displayClass.height);
7073
screenDisplayMetricsMap.set("scale", displayClass.densityPixels / PixelUtil.getDensityScale());
7174
screenDisplayMetricsMap.set("fontScale", displayClass.scaledDensity / PixelUtil.getDensityScale());
7275
screenDisplayMetricsMap.set("densityDpi", displayClass.densityDPI / PixelUtil.getDensityScale());

0 commit comments

Comments
 (0)