-
Notifications
You must be signed in to change notification settings - Fork 6k
[web] Handle resizes at the view level #48892
Conversation
| final bool isEditingOnMobile = | ||
| isMobile && !_isRotation(newPhysicalSize) && textEditing.isEditing; | ||
| if (isEditingOnMobile) { | ||
| _computeOnScreenKeyboardInsets(true); | ||
| } else { | ||
| _physicalSize = newPhysicalSize; | ||
| // When physical size changes this value has to be recalculated. | ||
| _computeOnScreenKeyboardInsets(false); | ||
| } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm 99% sure this bit only matters when the app is embedded in full-screen mode (the only one that really computes keyboard insets).
Can we make this didResize something that is overridable in the Implicit view + full-screen implementation, and move this version of the logic there?
The case of embedded views in custom elements shouldn't worry about this. WDYT?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
What you are suggesting makes sense. But I would like to do it in a separate PR when I have the time to refactor it and test it properly.
| // hot restart. | ||
| embeddingStrategy.attachViewRoot(dom.rootElement); | ||
| pointerBinding = PointerBinding(this); | ||
| onResize.listen(_didResize); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to stop listening on dispose of the view?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm not sure, since we are closing the stream on dispose anyway. I'll remove the listener too just to be safe.
ditman
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Forgot to approve this, LGTM!
…140084) flutter/engine@9039ac7...fc32677 2023-12-13 jason-simmons@users.noreply.github.com Revert Dart SDK back to 3.3.0-219.0.dev (flutter/engine#48990) 2023-12-13 flar@google.com [Impeller] Use direct tessellation geometry for simple clip shapes (flutter/engine#48959) 2023-12-13 98614782+auto-submit[bot]@users.noreply.github.com Reverts "[Android] Re-land "Add target to have linux_android_emulator_tests run on AVDs with Android 33 & 34"" (flutter/engine#48988) 2023-12-13 31859944+LongCatIsLooong@users.noreply.github.com Add a constructor for `GlyphInfo`. (flutter/engine#48971) 2023-12-13 737941+loic-sharma@users.noreply.github.com [Windows] Refactor surface manager mocking (flutter/engine#48953) 2023-12-13 skia-flutter-autoroll@skia.org Roll Skia from 6e5bd9b1d91d to f3401c6186c1 (2 revisions) (flutter/engine#48981) 2023-12-13 skia-flutter-autoroll@skia.org Roll Skia from 1e63c048ded7 to 6e5bd9b1d91d (1 revision) (flutter/engine#48973) 2023-12-13 skia-flutter-autoroll@skia.org Roll Skia from 927f20598b11 to 1e63c048ded7 (1 revision) (flutter/engine#48968) 2023-12-13 skia-flutter-autoroll@skia.org Roll Dart SDK from 17143c130ab3 to 114f2e8de3e5 (1 revision) (flutter/engine#48969) 2023-12-13 jason-simmons@users.noreply.github.com Workarounds for clang-tidy warnings in the next roll of Clang (flutter/engine#48963) 2023-12-13 matanlurey@users.noreply.github.com Migrate `impeller/**.h` to header guards. (flutter/engine#48962) 2023-12-13 skia-flutter-autoroll@skia.org Roll Dart SDK from 02f28120470f to 17143c130ab3 (1 revision) (flutter/engine#48961) 2023-12-13 43054281+camsim99@users.noreply.github.com [Android] Re-land "Add target to have linux_android_emulator_tests run on AVDs with Android 33 & 34" (flutter/engine#48936) 2023-12-13 skia-flutter-autoroll@skia.org Roll Skia from 49e32eb178a7 to 927f20598b11 (3 revisions) (flutter/engine#48956) 2023-12-13 1961493+harryterkelsen@users.noreply.github.com [web:multiview] Make CanvasKitRenderer listen for view creation/disposal events (flutter/engine#48812) 2023-12-12 matanlurey@users.noreply.github.com Move `third_party/swiftshader`, roll buildroot `DEPS`. (flutter/engine#48946) 2023-12-12 flar@google.com [Impeller] Direct tessellation of simple filled round rects (flutter/engine#48919) 2023-12-12 skia-flutter-autoroll@skia.org Roll Skia from 8e8d92ac1536 to 49e32eb178a7 (1 revision) (flutter/engine#48949) 2023-12-12 skia-flutter-autoroll@skia.org Roll Dart SDK from a677378ae254 to 02f28120470f (1 revision) (flutter/engine#48945) 2023-12-12 skia-flutter-autoroll@skia.org Roll Skia from 43a400456ab4 to 8e8d92ac1536 (1 revision) (flutter/engine#48941) 2023-12-12 skia-flutter-autoroll@skia.org Roll Skia from 3678212a85b8 to 43a400456ab4 (2 revisions) (flutter/engine#48939) 2023-12-12 matanlurey@users.noreply.github.com Roll `buildroot` and delete `libxml`. (flutter/engine#48906) 2023-12-12 skia-flutter-autoroll@skia.org Roll Skia from 16298087c277 to 3678212a85b8 (2 revisions) (flutter/engine#48934) 2023-12-12 jason-simmons@users.noreply.github.com Manual roll of Dart SDK from 82c4571bb2de to a677378ae254 (flutter/engine#48933) 2023-12-12 skia-flutter-autoroll@skia.org Roll Skia from 7685acfb6221 to 16298087c277 (1 revision) (flutter/engine#48931) 2023-12-12 mdebbar@google.com [web] Handle resizes at the view level (flutter/engine#48892) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-engine-flutter-autoroll Please CC jsimmons@google.com,rmistry@google.com,zra@google.com on the revert to ensure that a human is aware of the problem. To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose To report a problem with the AutoRoller itself, please file a bug: https://issues.skia.org/issues/new?component=1389291&template=1850622 Documentation for the AutoRoller is here: https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md
Currently, in multi-view mode, when the user resizes the window, Flutter views don't respond to the resize. This is because
FlutterViewEmbedderis the one responding to resize events. ButFlutterViewEmbedderonly works with the implicit view, so multi views didn't respond to resize events.This PR moves the responsibility of responding to resize events from
FlutterViewEmbeddertoEngineFlutterView. Also, tests.Part of flutter/flutter#134443