-
Notifications
You must be signed in to change notification settings - Fork 26.8k
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
Unifies text field focus management in desktops #129652
Conversation
IMG_0001.MOVTested with ios web, looks normal |
@@ -1313,6 +1314,11 @@ class _TextFieldState extends State<TextField> with RestorationMixin implements | |||
_effectiveFocusNode.requestFocus(); | |||
} | |||
}; | |||
handleDidLoseAccessibilityFocus = () { | |||
if (_effectiveFocusNode.hasFocus) { |
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 check is not necessary. FocusNode
already checks for hasFocus
and a couple of other things.
} | ||
}; | ||
handleDidLoseAccessibilityFocus = () { | ||
if (_effectiveFocusNode.hasFocus) { |
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.
ditto
@@ -1344,6 +1361,11 @@ class _TextFieldState extends State<TextField> with RestorationMixin implements | |||
_effectiveFocusNode.requestFocus(); | |||
} | |||
}; | |||
handleDidLoseAccessibilityFocus = () { | |||
if (_effectiveFocusNode.hasFocus) { |
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.
ditto
auto label is removed for flutter/flutter, pr: 129652, due to - The status or check suite Linux firebase_oriol33_abstract_method_smoke_test has failed. Please fix the issues identified (or deflake) before re-applying this label. |
Google testing is stuck as pending due to the test results being cleaned up. The latest results passed the smoke test, so this is safe to land. There's an internal breakage where we're unable to override the GitHub status (b/291100012) |
Manually landed the pr as google test can't be overridden |
…ion (#43279) fixes flutter/flutter#128709 requires flutter/flutter#129652 The issue is that when textfield focus in framework and web engine a11y are out of sync, the framework keep sending update with textfield focus = true and causes web engine to keep refocusing the textfield. [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
related flutter#128709 engine PR: flutter/engine#43279 The web engine requires a way to unfocus textfield, It comes to nature to me that we should leverage didGain/didLose a11y focus action. I also unifies the action handler of all desktop platforms ## Pre-launch Checklist - [ ] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [ ] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [ ] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [ ] I signed the [CLA]. - [ ] I listed at least one issue that this PR fixes in the description above. - [ ] I updated/added relevant documentation (doc comments with `///`). - [ ] I added new tests to check the change I am making, or this PR is [test-exempt]. - [ ] All existing and new tests are passing. If you need help, consider asking for advice on the #hackers-new channel on [Discord]. <!-- Links --> [Contributor Guide]: https://github.com/flutter/flutter/wiki/Tree-hygiene#overview [Tree Hygiene]: https://github.com/flutter/flutter/wiki/Tree-hygiene [test-exempt]: https://github.com/flutter/flutter/wiki/Tree-hygiene#tests [Flutter Style Guide]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo [Features we expect every widget to implement]: https://github.com/flutter/flutter/wiki/Style-guide-for-Flutter-repo#features-we-expect-every-widget-to-implement [CLA]: https://cla.developers.google.com/ [flutter/tests]: https://github.com/flutter/tests [breaking change policy]: https://github.com/flutter/flutter/wiki/Tree-hygiene#handling-breaking-changes [Discord]: https://github.com/flutter/flutter/wiki/Chat
…ion (flutter#43279) fixes flutter/flutter#128709 requires flutter/flutter#129652 The issue is that when textfield focus in framework and web engine a11y are out of sync, the framework keep sending update with textfield focus = true and causes web engine to keep refocusing the textfield. [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
…ion (flutter#43279) fixes flutter/flutter#128709 requires flutter/flutter#129652 The issue is that when textfield focus in framework and web engine a11y are out of sync, the framework keep sending update with textfield focus = true and causes web engine to keep refocusing the textfield. [C++, Objective-C, Java style guides]: https://github.com/flutter/engine/blob/main/CONTRIBUTING.md#style
related #128709
engine PR: flutter/engine#43279
The web engine requires a way to unfocus textfield, It comes to nature to me that we should leverage didGain/didLose a11y focus action. I also unifies the action handler of all desktop platforms
Pre-launch Checklist
///
).If you need help, consider asking for advice on the #hackers-new channel on Discord.