-
Eric Seidel authored
This patch provides a class to manage focus, Focus, and a class to manage ownership of the keyboard, KeyboardHandle. Inherited (in widgets.dart) is adjusted to support subclasses that need to copy state from instance to instance. A GlobalKey key type is introduced that is basically the same as UniqueKey. Component classes that need a globally-unique key can specify that their 'key' constructor argument is a GlobalKey. Focus ----- You can use `Focus.at(this)` to determine if you, a Component, are currently focused. You can use `Focus.moveTo(this)` to take the focus or give it to a particular component. For this to work, there has to be a Focus class in the widget hierarchy. Currently, there can only be one Focus class, because nested scopes aren't supported. We should add support for that in a future patch. See issue #229. KeyboardHandle -------------- Instead of directly interacting with the keyboard service, you now ask for a KeyboardHandle using `_keyboard.show(client)`. This returns a KeyboardHandle class. On that class, you can call `handle.release()` when you want to hide the keyboard. If `handle.attached` is still true, and you need to reshow the keyboard after the user hid it, then you can can `handle.showByRequest()`. The point of this is that the `keyboard.show()` method maintains the invariant that only one KeyboardHandle is live at a time. There are some issues with the keyboard service that I filed as a result of doing this patch: #226 #227
4da27671
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
net | ||
activity.dart | ||
asset_bundle.dart | ||
embedder.dart | ||
keyboard.dart | ||
shell.dart |