-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Factor out RawView, make View listen to engine generated view focus events
#143259
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
I've deployed the latest version of this PR with a small multi-view test web app I have, and it works beautifully! |
4d29b0b to
f7b0216
Compare
|
Looks like this is failing many checks... |
|
Wait... Something is very off about this PR. There's a lot of code in there that I didn't write for this PR. Let me try re-merging and push again. |
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.
Will look again later!
|
(Also calling @tugorez since he worked on the engine side of things) |
f7b0216 to
9a2e816
Compare
goderbauer
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.
This pretty much looks good to me. I would like to see RawView get separated out of this and it looks like this is still failing tests.
b4c8307 to
f811a65
Compare
RawView, make View listen to engine generated view focus events
@ditman do you mind redeploying the app with the latest changes? |
goderbauer
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.
LGTM
|
auto label is removed for flutter/flutter/143259, due to - The status or check suite Mac customer_testing has failed. Please fix the issues identified (or deflake) before re-applying this label. |
|
I took a quick look at the failing web tests, and most of them (all?) seem to be related to the changes in the widget tree, and tests having "golden" I can help updating the "goldens" if needed, do ping me if we want to fix like that, or there's another way I don't see :) |
|
@gspencergoog one thing I notice while traversing multiple counters in https://dit-multiview-tests.web.app/ is that it requires two tabs to go from the button in a given view |
…52527) Put the view focus functionality behind a (disabled by default) flag Should unblock flutter/flutter#143259 [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
|
@gspencergoog I think this PR is ready to be landed. |
|
auto label is removed for flutter/flutter/143259, due to - The status or check suite Linux analyze has failed. Please fix the issues identified (or deflake) before re-applying this label. |
|
auto label is removed for flutter/flutter/143259, due to - The status or check suite Linux customer_testing has failed. Please fix the issues identified (or deflake) before re-applying this label. |
…view focus events (flutter/flutter#143259)
flutter/flutter@02a6c91...d02292d 2024-05-21 [email protected] Make FileSystem dependency explicit througout (more). (flutter/flutter#148095) 2024-05-20 [email protected] Remove add-to-app bitcode warning (flutter/flutter#148587) 2024-05-20 [email protected] SelectionArea's selection should not be cleared on loss of window focus (flutter/flutter#148067) 2024-05-20 [email protected] [wiki migration] Engine team pages (flutter/flutter#148696) 2024-05-20 [email protected] Manual roll camera dependency (flutter/flutter#148426) 2024-05-20 [email protected] [wiki migration] Framework team pages (flutter/flutter#148721) 2024-05-20 [email protected] Roll Flutter Engine from a8fb9daae8d0 to c2ef01f6f1ab (3 revisions) (flutter/flutter#148722) 2024-05-20 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 3.25.5 to 3.25.6 (flutter/flutter#148715) 2024-05-20 49699333+dependabot[bot]@users.noreply.github.com Bump codecov/codecov-action from 4.4.0 to 4.4.1 (flutter/flutter#148714) 2024-05-20 [email protected] Fixes incorrect read/write permissions on Flutter.framework and FlutterMacOS.framework (flutter/flutter#148580) 2024-05-20 [email protected] Roll Flutter Engine from c6fecf65fbf3 to a8fb9daae8d0 (3 revisions) (flutter/flutter#148700) 2024-05-20 [email protected] Remove the no-shuffle tag on the flutter_tools create_test suite (flutter/flutter#148688) 2024-05-20 [email protected] log incoming vm service messages in `FlutterVMService::runInView` (flutter/flutter#148596) 2024-05-20 [email protected] Add tests for shared_app_data.#.dart API examples. (flutter/flutter#147830) 2024-05-20 [email protected] Add tests for logical_key_set.0.dart API example. (flutter/flutter#147735) 2024-05-20 [email protected] [wiki migration] Ecosystem team pages (flutter/flutter#148589) 2024-05-20 [email protected] Fix painting API examples tests directories structure. (flutter/flutter#148177) 2024-05-20 [email protected] fixes `CupertinoModalPopupRoute` (flutter/flutter#147823) 2024-05-20 [email protected] Implement new `AnimationStatus` getters (flutter/flutter#148570) 2024-05-20 [email protected] Reland "`if` chains � `switch` expressions" (flutter/flutter#148634) 2024-05-20 [email protected] Factor out `RawView`, make `View` listen to engine generated view focus events (flutter/flutter#143259) 2024-05-20 [email protected] Remove all tests from a02s. Replace with mokey in bringup (flutter/flutter#148563) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: 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
flutter/flutter@02a6c91...d02292d 2024-05-21 [email protected] Make FileSystem dependency explicit througout (more). (flutter/flutter#148095) 2024-05-20 [email protected] Remove add-to-app bitcode warning (flutter/flutter#148587) 2024-05-20 [email protected] SelectionArea's selection should not be cleared on loss of window focus (flutter/flutter#148067) 2024-05-20 [email protected] [wiki migration] Engine team pages (flutter/flutter#148696) 2024-05-20 [email protected] Manual roll camera dependency (flutter/flutter#148426) 2024-05-20 [email protected] [wiki migration] Framework team pages (flutter/flutter#148721) 2024-05-20 [email protected] Roll Flutter Engine from a8fb9daae8d0 to c2ef01f6f1ab (3 revisions) (flutter/flutter#148722) 2024-05-20 49699333+dependabot[bot]@users.noreply.github.com Bump github/codeql-action from 3.25.5 to 3.25.6 (flutter/flutter#148715) 2024-05-20 49699333+dependabot[bot]@users.noreply.github.com Bump codecov/codecov-action from 4.4.0 to 4.4.1 (flutter/flutter#148714) 2024-05-20 [email protected] Fixes incorrect read/write permissions on Flutter.framework and FlutterMacOS.framework (flutter/flutter#148580) 2024-05-20 [email protected] Roll Flutter Engine from c6fecf65fbf3 to a8fb9daae8d0 (3 revisions) (flutter/flutter#148700) 2024-05-20 [email protected] Remove the no-shuffle tag on the flutter_tools create_test suite (flutter/flutter#148688) 2024-05-20 [email protected] log incoming vm service messages in `FlutterVMService::runInView` (flutter/flutter#148596) 2024-05-20 [email protected] Add tests for shared_app_data.#.dart API examples. (flutter/flutter#147830) 2024-05-20 [email protected] Add tests for logical_key_set.0.dart API example. (flutter/flutter#147735) 2024-05-20 [email protected] [wiki migration] Ecosystem team pages (flutter/flutter#148589) 2024-05-20 [email protected] Fix painting API examples tests directories structure. (flutter/flutter#148177) 2024-05-20 [email protected] fixes `CupertinoModalPopupRoute` (flutter/flutter#147823) 2024-05-20 [email protected] Implement new `AnimationStatus` getters (flutter/flutter#148570) 2024-05-20 [email protected] Reland "`if` chains � `switch` expressions" (flutter/flutter#148634) 2024-05-20 [email protected] Factor out `RawView`, make `View` listen to engine generated view focus events (flutter/flutter#143259) 2024-05-20 [email protected] Remove all tests from a02s. Replace with mokey in bringup (flutter/flutter#148563) If this roll has caused a breakage, revert this CL and stop the roller using the controls here: https://autoroll.skia.org/r/flutter-packages Please CC [email protected],[email protected],[email protected] on the revert to ensure that a human is aware of the problem. To file a bug in Packages: 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
…view focus events (flutter/flutter#143259)
Description
This factors out a separate
RawViewthat doesn't add aMediaQueryor aFocusScope. This PR also adds a new methodWidgetsBindingObserver.didChangeViewFocuswhich allows the observer to know when theFlutterViewthat has focus has changed.It also makes the
Viewwidget a stateful widget that contains aFocusScopeandFocusTraversalGroupso that it can respond to changes in the focus of the view.I've also added a new function to
FocusScopeNodethat will allow the scope node itself to be focused, without looking for descendants that could take the focus. This lets the focus be "parked" at theFocusManager.instance.rootScopeso that nothing else appears to have focus.Tests