From d9d4e26380eb76c5d2e90972950967f1aec0b4d0 Mon Sep 17 00:00:00 2001 From: Michael Goderbauer Date: Wed, 8 Nov 2023 12:47:28 -0800 Subject: [PATCH 1/3] Remove physical geometry --- lib/ui/hooks.dart | 2 +- lib/ui/platform_dispatcher.dart | 9 ++++---- lib/ui/window.dart | 23 +------------------ .../lib/src/engine/platform_dispatcher.dart | 10 ++++---- lib/web_ui/lib/src/engine/window.dart | 3 --- lib/web_ui/lib/window.dart | 1 - 6 files changed, 11 insertions(+), 37 deletions(-) diff --git a/lib/ui/hooks.dart b/lib/ui/hooks.dart index 2d228e1bf66ba..1888e1d575a77 100644 --- a/lib/ui/hooks.dart +++ b/lib/ui/hooks.dart @@ -135,7 +135,7 @@ _ViewConfiguration _buildViewConfiguration( ) { return _ViewConfiguration( devicePixelRatio: devicePixelRatio, - geometry: Rect.fromLTWH(0.0, 0.0, width, height), + size: Size(width, height), viewPadding: ViewPadding._( top: viewPaddingTop, right: viewPaddingRight, diff --git a/lib/ui/platform_dispatcher.dart b/lib/ui/platform_dispatcher.dart index 60f6783f6a58c..cd1231c0b8874 100644 --- a/lib/ui/platform_dispatcher.dart +++ b/lib/ui/platform_dispatcher.dart @@ -1462,7 +1462,7 @@ class _PlatformConfiguration { class _ViewConfiguration { const _ViewConfiguration({ this.devicePixelRatio = 1.0, - this.geometry = Rect.zero, + this.size = Size.zero, this.viewInsets = ViewPadding.zero, this.viewPadding = ViewPadding.zero, this.systemGestureInsets = ViewPadding.zero, @@ -1479,9 +1479,8 @@ class _ViewConfiguration { /// The pixel density of the output surface. final double devicePixelRatio; - /// The geometry requested for the view on the screen or within its parent - /// window, in logical pixels. - final Rect geometry; + /// The size requested for the view in logical pixels. + final Size size; /// The number of physical pixels on each side of the display rectangle into /// which the view can render, but over which the operating system will likely @@ -1551,7 +1550,7 @@ class _ViewConfiguration { @override String toString() { - return '$runtimeType[geometry: $geometry]'; + return '$runtimeType[size: $size]'; } } diff --git a/lib/ui/window.dart b/lib/ui/window.dart index 71b9ea56a48d0..979c7803c1cd4 100644 --- a/lib/ui/window.dart +++ b/lib/ui/window.dart @@ -138,25 +138,6 @@ class FlutterView { /// The value here is equal to the value exposed on [display]. double get devicePixelRatio => _viewConfiguration.devicePixelRatio; - /// The dimensions and location of the rectangle into which the scene rendered - /// in this view will be drawn on the screen, in physical pixels. - /// - /// When this changes, [PlatformDispatcher.onMetricsChanged] is called. - /// - /// At startup, the size and location of the view may not be known before Dart - /// code runs. If this value is observed early in the application lifecycle, - /// it may report [Rect.zero]. - /// - /// This value does not take into account any on-screen keyboards or other - /// system UI. The [padding] and [viewInsets] properties provide a view into - /// how much of each side of the view may be obscured by system UI. - /// - /// See also: - /// - /// * [WidgetsBindingObserver], for a mechanism at the widgets layer to - /// observe when this value changes. - Rect get physicalGeometry => _viewConfiguration.geometry; - /// The dimensions of the rectangle into which the scene rendered in this view /// will be drawn on the screen, in physical pixels. /// @@ -179,11 +160,9 @@ class FlutterView { /// /// See also: /// - /// * [physicalGeometry], which reports the location of the view as well as - /// its size. /// * [WidgetsBindingObserver], for a mechanism at the widgets layer to /// observe when this value changes. - Size get physicalSize => _viewConfiguration.geometry.size; + Size get physicalSize => _viewConfiguration.size; /// The number of physical pixels on each side of the display rectangle into /// which the view can render, but over which the operating system will likely diff --git a/lib/web_ui/lib/src/engine/platform_dispatcher.dart b/lib/web_ui/lib/src/engine/platform_dispatcher.dart index 5d667c51ccf28..271afc778c2d6 100644 --- a/lib/web_ui/lib/src/engine/platform_dispatcher.dart +++ b/lib/web_ui/lib/src/engine/platform_dispatcher.dart @@ -1343,7 +1343,7 @@ class ViewConfiguration { const ViewConfiguration({ this.view, this.devicePixelRatio = 1.0, - this.geometry = ui.Rect.zero, + this.size = ui.Size.zero, this.visible = false, this.viewInsets = ui.ViewPadding.zero as ViewPadding, this.viewPadding = ui.ViewPadding.zero as ViewPadding, @@ -1356,7 +1356,7 @@ class ViewConfiguration { ViewConfiguration copyWith({ EngineFlutterView? view, double? devicePixelRatio, - ui.Rect? geometry, + ui.Size? size, bool? visible, ViewPadding? viewInsets, ViewPadding? viewPadding, @@ -1368,7 +1368,7 @@ class ViewConfiguration { return ViewConfiguration( view: view ?? this.view, devicePixelRatio: devicePixelRatio ?? this.devicePixelRatio, - geometry: geometry ?? this.geometry, + size: size ?? this.size, visible: visible ?? this.visible, viewInsets: viewInsets ?? this.viewInsets, viewPadding: viewPadding ?? this.viewPadding, @@ -1381,7 +1381,7 @@ class ViewConfiguration { final EngineFlutterView? view; final double devicePixelRatio; - final ui.Rect geometry; + final ui.Size size; final bool visible; final ViewPadding viewInsets; final ViewPadding viewPadding; @@ -1392,7 +1392,7 @@ class ViewConfiguration { @override String toString() { - return '$runtimeType[view: $view, geometry: $geometry]'; + return '$runtimeType[view: $view, size: $size]'; } } diff --git a/lib/web_ui/lib/src/engine/window.dart b/lib/web_ui/lib/src/engine/window.dart index f3c5e9b2b87db..9de0c86fe758e 100644 --- a/lib/web_ui/lib/src/engine/window.dart +++ b/lib/web_ui/lib/src/engine/window.dart @@ -235,9 +235,6 @@ class EngineFlutterWindow extends ui.SingletonFlutterWindow implements EngineFlu const ViewConfiguration(); } - @override - ui.Rect get physicalGeometry => _viewConfiguration.geometry; - @override ViewPadding get viewPadding => _viewConfiguration.viewPadding; diff --git a/lib/web_ui/lib/window.dart b/lib/web_ui/lib/window.dart index 3e31bbc03f025..dc6743d054098 100644 --- a/lib/web_ui/lib/window.dart +++ b/lib/web_ui/lib/window.dart @@ -15,7 +15,6 @@ abstract class FlutterView { PlatformDispatcher get platformDispatcher; int get viewId; double get devicePixelRatio; - Rect get physicalGeometry; Size get physicalSize; ViewPadding get viewInsets; ViewPadding get viewPadding; From ea84bc3fe26754818eca586ad87b09c9dc073327 Mon Sep 17 00:00:00 2001 From: Michael Goderbauer Date: Wed, 8 Nov 2023 12:58:12 -0800 Subject: [PATCH 2/3] fix test --- shell/common/fixtures/shell_test.dart | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shell/common/fixtures/shell_test.dart b/shell/common/fixtures/shell_test.dart index cc6e32731d898..591d2e7d68ab0 100644 --- a/shell/common/fixtures/shell_test.dart +++ b/shell/common/fixtures/shell_test.dart @@ -530,7 +530,7 @@ List getCurrentViewWidths() { final List result = []; for (final FlutterView view in PlatformDispatcher.instance.views) { result.add(view.viewId); - result.add(view.physicalGeometry.width.round()); + result.add(view.physicalSize.width.round()); } return result; } From 3bd18a7457a3e700f8a566fd252217e78b38a4d1 Mon Sep 17 00:00:00 2001 From: Michael Goderbauer Date: Wed, 8 Nov 2023 17:39:14 -0800 Subject: [PATCH 3/3] Update platform_dispatcher.dart --- lib/web_ui/lib/src/engine/platform_dispatcher.dart | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/lib/web_ui/lib/src/engine/platform_dispatcher.dart b/lib/web_ui/lib/src/engine/platform_dispatcher.dart index ede8371e4932f..90095b276a840 100644 --- a/lib/web_ui/lib/src/engine/platform_dispatcher.dart +++ b/lib/web_ui/lib/src/engine/platform_dispatcher.dart @@ -1340,7 +1340,6 @@ class ViewConfiguration { const ViewConfiguration({ this.view, this.devicePixelRatio = 1.0, - this.size = ui.Size.zero, this.visible = false, this.viewInsets = ui.ViewPadding.zero as ViewPadding, this.viewPadding = ui.ViewPadding.zero as ViewPadding, @@ -1353,7 +1352,6 @@ class ViewConfiguration { ViewConfiguration copyWith({ EngineFlutterView? view, double? devicePixelRatio, - ui.Size? size, bool? visible, ViewPadding? viewInsets, ViewPadding? viewPadding, @@ -1365,7 +1363,6 @@ class ViewConfiguration { return ViewConfiguration( view: view ?? this.view, devicePixelRatio: devicePixelRatio ?? this.devicePixelRatio, - size: size ?? this.size, visible: visible ?? this.visible, viewInsets: viewInsets ?? this.viewInsets, viewPadding: viewPadding ?? this.viewPadding, @@ -1378,7 +1375,6 @@ class ViewConfiguration { final EngineFlutterView? view; final double devicePixelRatio; - final ui.Size size; final bool visible; final ViewPadding viewInsets; final ViewPadding viewPadding; @@ -1389,7 +1385,7 @@ class ViewConfiguration { @override String toString() { - return '$runtimeType[view: $view, size: $size]'; + return '$runtimeType[view: $view]'; } }