diff --git a/packages/pointer_interceptor/pointer_interceptor_web/example/integration_test/widget_test.dart b/packages/pointer_interceptor/pointer_interceptor_web/example/integration_test/widget_test.dart index bfb5ad087694..de109297fca2 100644 --- a/packages/pointer_interceptor/pointer_interceptor_web/example/integration_test/widget_test.dart +++ b/packages/pointer_interceptor/pointer_interceptor_web/example/integration_test/widget_test.dart @@ -19,7 +19,7 @@ final Finder clickableWrappedButtonFinder = find.byKey(const Key('wrapped-transparent-button')); final Finder clickableButtonFinder = find.byKey(const Key('clickable-button')); final Finder backgroundFinder = - find.byKey(const ValueKey('background-widget')); + find.byKey(const Key('background-widget')); void main() { IntegrationTestWidgetsFlutterBinding.ensureInitialized(); @@ -148,7 +148,11 @@ web.Element _getHtmlElementAt(Offset point) { // the contents of as an implementation detail. final web.ShadowRoot glassPaneShadow = web.document.querySelector('flt-glass-pane')!.shadowRoot!; - return glassPaneShadow.elementFromPoint(point.dx.toInt(), point.dy.toInt()); + // Use `round` below to ensure clicks always fall *inside* the located + // element, rather than truncating the decimals. + // Truncating decimals makes some tests fail when a centered element (in high + // DPI) is not exactly aligned to the pixel grid (because the browser *rounds*) + return glassPaneShadow.elementFromPoint(point.dx.round(), point.dy.round()); } /// Shady API: https://github.com/w3c/csswg-drafts/issues/556 diff --git a/packages/pointer_interceptor/pointer_interceptor_web/example/lib/main.dart b/packages/pointer_interceptor/pointer_interceptor_web/example/lib/main.dart index 24b9384abf8a..96cdb726c1a0 100644 --- a/packages/pointer_interceptor/pointer_interceptor_web/example/lib/main.dart +++ b/packages/pointer_interceptor/pointer_interceptor_web/example/lib/main.dart @@ -126,7 +126,7 @@ class _MyHomePageState extends State { alignment: Alignment.center, children: [ HtmlElement( - key: const ValueKey('background-widget'), + key: const Key('background-widget'), onClick: () { _clickedOn('html-element'); },