flutter/dev/tools
Greg Spencer 4218c0bc38
Implement focus traversal for desktop platforms, shoehorn edition. (#30040)
Implements focus traversal for desktop platforms, including re-implementing the existing focus manager and focus tree.

This implements a Focus widget that can be put into a widget tree to allow input focus to be given to a particular part of a widget tree.

It incorporates with the existing FocusScope and FocusNode infrastructure, and has minimal breakage to the API, although FocusScope.reparentIfNeeded is removed, replaced by a call to FocusAttachment.reparent(), so this is a breaking change:

FocusScopeNodes must now be attached to the focus tree using FocusScopeNode.attach, which takes a context and an optional onKey callback, and returns a FocusAttachment that should be kept by the widget that hosts the FocusScopeNode. This is necessary because of the need to make sure that the focus tree reflects the widget hierarchy.

Callers that used to call FocusScope(context).reparentIfNeeded in their build method will call reparent  on a FocusAttachment instead, which they will obtain by calling FocusScopeNode.attach in their initState method. Widgets that own FocusNodes will need to call dispose on the focus node in their dispose method.

Addresses #11344, #1608, #13264, and #1678
Fixes #30084
Fixes #26704
2019-04-22 09:51:40 -07:00
..
gen_keycodes Implement focus traversal for desktop platforms, shoehorn edition. (#30040) 2019-04-22 09:51:40 -07:00
lib add missing type parameter on methods (#22096) 2018-10-01 21:29:08 +02:00
localization Cupertino localization step 7: modularize material specific things out of gen_localizations.dart (#29822) 2019-04-10 01:24:58 -07:00
vitool Replace flutter.io with flutter.dev (#30562) 2019-04-05 11:39:30 -07:00
dartdoc.dart Replace flutter.io with flutter.dev (#30562) 2019-04-05 11:39:30 -07:00
java_and_objc_doc.dart Update packages (#27046) 2019-01-24 16:02:45 -08:00
mega_gallery.dart add an analysis_options excludes for the build/ dir (#23653) 2018-11-06 07:59:33 -08:00
pubspec.yaml Intercept errors thrown by synchronous Completers in image resolution. (#30139) 2019-03-29 10:05:18 -07:00
repackage_gradle_wrapper.sh Make artifacts URLs configurable. (#13380) 2017-12-07 16:30:23 +01:00
update_icons.dart set literal conversions (#27811) 2019-03-06 11:05:16 -08:00