chore(ios): removed forced background update during safe area inset calculation (#10767)

This commit is contained in:
Dimitris-Rafail Katsampas
2025-07-20 22:33:53 +03:00
committed by GitHub
parent 0dc8b2ba2a
commit 46d9827960
3 changed files with 2 additions and 17 deletions

View File

@ -106,14 +106,13 @@ export class View extends ViewCommon implements ViewDefinition {
@profile
public layout(left: number, top: number, right: number, bottom: number, setFrame = true): void {
const result = this._setCurrentLayoutBounds(left, top, right, bottom);
let { sizeChanged } = result;
const { boundsChanged, sizeChanged } = this._setCurrentLayoutBounds(left, top, right, bottom);
if (setFrame) {
this.layoutNativeView(left, top, right, bottom);
}
const needsLayout = result.boundsChanged || (this._privateFlags & PFLAG_LAYOUT_REQUIRED) === PFLAG_LAYOUT_REQUIRED;
const needsLayout = boundsChanged || (this._privateFlags & PFLAG_LAYOUT_REQUIRED) === PFLAG_LAYOUT_REQUIRED;
if (needsLayout) {
let position: Position;
@ -121,14 +120,6 @@ export class View extends ViewCommon implements ViewDefinition {
// on iOS 11+ it is possible to have a changed layout frame due to safe area insets
// get the frame and adjust the position, so that onLayout works correctly
position = IOSHelper.getPositionFromFrame(this.nativeViewProtected.frame);
if (!sizeChanged) {
// If frame has actually changed, there is the need to update view background and border styles as they depend on native view bounds
// To trigger the needed visual update, mark size as changed
if (position.left !== left || position.top !== top || position.right !== right || position.bottom !== bottom) {
sizeChanged = true;
}
}
} else {
position = { left, top, right, bottom };
}

View File

@ -9,7 +9,6 @@ import { ImageSource } from '../../image-source';
import type { CSSValue } from '../../css-value/reworkcss-value';
import { parse as cssParse } from '../../css-value/reworkcss-value.js';
import { BoxShadow } from './box-shadow';
import { Length } from './style-properties';
import { BackgroundClearFlags } from './background-common';
import { ClipPathFunction } from './clip-path-function';