[pointer_interceptor] Shadow dom tweaks (#364)
diff --git a/packages/pointer_interceptor/CHANGELOG.md b/packages/pointer_interceptor/CHANGELOG.md
index 06e0c6e..7eb41aa 100644
--- a/packages/pointer_interceptor/CHANGELOG.md
+++ b/packages/pointer_interceptor/CHANGELOG.md
@@ -1,3 +1,7 @@
+## 0.9.0+1
+
+* Change sizing of HtmlElementView so it works well when slotted.
+
## 0.9.0
* Migrates to null safety.
diff --git a/packages/pointer_interceptor/example/integration_test/widget_test.dart b/packages/pointer_interceptor/example/integration_test/widget_test.dart
index ff9c827..f996898 100644
--- a/packages/pointer_interceptor/example/integration_test/widget_test.dart
+++ b/packages/pointer_interceptor/example/integration_test/widget_test.dart
@@ -21,18 +21,24 @@
find.byKey(const Key('clickable-button'));
testWidgets(
- 'on wrapped elements, the browser hits the interceptor (and not the background-html-view)',
+ 'on wrapped elements, the browser does not hit the background-html-view',
(WidgetTester tester) async {
app.main();
await tester.pumpAndSettle();
final html.Element? element =
_getHtmlElementFromFinder(clickableButtonFinder, tester);
- expect(element?.tagName.toLowerCase(), 'flt-platform-view');
- final html.Element? platformViewRoot =
- element?.shadowRoot?.getElementById('background-html-view');
- expect(platformViewRoot, isNull);
+ if (html.document.querySelector('flt-glass-pane')?.shadowRoot != null) {
+ // In flutter master...
+ expect(element?.id, isNot('background-html-view'));
+ } else {
+ // In previous versions (--web-renderer=html only)...
+ expect(element?.tagName.toLowerCase(), 'flt-platform-view');
+ final html.Element? platformViewRoot =
+ element?.shadowRoot?.getElementById('background-html-view');
+ expect(platformViewRoot, isNull);
+ }
});
testWidgets(
@@ -43,11 +49,17 @@
final html.Element? element =
_getHtmlElementFromFinder(nonClickableButtonFinder, tester);
- expect(element?.tagName.toLowerCase(), 'flt-platform-view');
- final html.Element? platformViewRoot =
- element?.shadowRoot?.getElementById('background-html-view');
- expect(platformViewRoot, isNotNull);
+ if (html.document.querySelector('flt-glass-pane')?.shadowRoot != null) {
+ // In flutter master...
+ expect(element?.id, 'background-html-view');
+ } else {
+ // In previous versions (--web-renderer=html only)...
+ expect(element?.tagName.toLowerCase(), 'flt-platform-view');
+ final html.Element? platformViewRoot =
+ element?.shadowRoot?.getElementById('background-html-view');
+ expect(platformViewRoot, isNotNull);
+ }
});
});
}
diff --git a/packages/pointer_interceptor/example/lib/main.dart b/packages/pointer_interceptor/example/lib/main.dart
index e600d43..0064889 100644
--- a/packages/pointer_interceptor/example/lib/main.dart
+++ b/packages/pointer_interceptor/example/lib/main.dart
@@ -42,6 +42,11 @@
// ..style.border = 'none';
void main() {
+ ui.platformViewRegistry.registerViewFactory(
+ _htmlElementViewType,
+ (int viewId) => htmlElement,
+ );
+
runApp(const MyApp());
}
@@ -52,13 +57,6 @@
@override
Widget build(BuildContext context) {
- ui.platformViewRegistry.registerViewFactory(_htmlElementViewType,
- (int viewId) {
- final html.Element wrapper = html.DivElement();
- wrapper.append(htmlElement);
- return wrapper;
- });
-
return const MaterialApp(
title: 'Stopping Clicks with some DOM',
home: MyHomePage(),
diff --git a/packages/pointer_interceptor/lib/src/web.dart b/packages/pointer_interceptor/lib/src/web.dart
index f524357..ad38e9f 100644
--- a/packages/pointer_interceptor/lib/src/web.dart
+++ b/packages/pointer_interceptor/lib/src/web.dart
@@ -22,11 +22,8 @@
final String viewType = _getViewType(debug: debug);
ui.platformViewRegistry.registerViewFactory(viewType, (int viewId) {
final html.Element htmlElement = html.DivElement()
- ..style.top = '0'
- ..style.right = '0'
- ..style.bottom = '0'
- ..style.left = '0'
- ..style.position = 'relative';
+ ..style.width = '100%'
+ ..style.height = '100%';
if (debug) {
htmlElement.style.backgroundColor = 'rgba(255, 0, 0, .5)';
}
diff --git a/packages/pointer_interceptor/pubspec.yaml b/packages/pointer_interceptor/pubspec.yaml
index 29c7e6c..cee03bd 100644
--- a/packages/pointer_interceptor/pubspec.yaml
+++ b/packages/pointer_interceptor/pubspec.yaml
@@ -1,7 +1,7 @@
name: pointer_interceptor
description: A widget to prevent clicks from being swallowed by underlying HtmlElementViews on the web.
repository: https://github.com/flutter/packages
-version: 0.9.0
+version: 0.9.0+1
environment:
sdk: ">=2.12.0 <3.0.0"