mirror of
https://github.com/flutter/flutter.git
synced 2026-02-11 13:22:46 +08:00
Fixes an issue where a previously closed text input connection may cause interference with hardware keyboard on Samsung devices. On the Samsung Galaxy S10 Tab the Samsung IME will request the operating system to show the IME when pressing enter/space on components like a radio option or a checkbox if there was a previously opened text input connection. It seems the Samsung Keyboard is caching some text input related state, and when it detects an enter/space key it acts on this previously cached state even if the text input connection has been closed. This prevents the radio option/checkbox and framework as a whole from responding to the key events. To solve this issue we should reset the input method manager when the IME has been hidden, and when the framework closes the input connection we should also reset the input method manager if the IME is hidden at the time of closing. This effectively resets any state cached by the Samsung keyboard and it no longer acts on stale state. Fixes https://github.com/flutter/flutter/issues/168099 Fixes https://github.com/flutter/flutter/issues/51478 Fixes https://github.com/flutter/flutter/issues/70546 Related: https://github.com/flutter/flutter/issues/136745 ## Pre-launch Checklist - [x] I read the [Contributor Guide] and followed the process outlined there for submitting PRs. - [x] I read the [Tree Hygiene] wiki page, which explains my responsibilities. - [x] I read and followed the [Flutter Style Guide], including [Features we expect every widget to implement]. - [x] I signed the [CLA]. - [x] I listed at least one issue that this PR fixes in the description above. - [x] I updated/added relevant documentation (doc comments with `///`). - [x] I added new tests to check the change I am making, or this PR is [test-exempt]. - [x] I followed the [breaking change policy] and added [Data Driven Fixes] where supported. - [x] All existing and new tests are passing. --------- Co-authored-by: Renzo Olivares <roliv@google.com>
Flutter Engine
Setting up the Engine development environment
See here
gclient bootstrap
Flutter engine uses gclient to manage dependencies.
If you've already cloned the flutter repository: