Teach Layer and its implementations, RenderObject and its implementations, and PaintingContext to reuse engine layers. The idea is that a concrete RenderObject creates a Layer and holds on to it as long as it needs it (i.e. when it is composited, and the layer type does not change). In return, each Layer object holds on to an EngineLayer and reports it to the engine via addRetained and oldLayer. This allows the Web engine to reuse DOM elements across frames. Without it, each frame drops all previously rendered HTML and regenerates it from scratch.
* Take growth direction into account when computing value for getOffsetForReveal in AxisDirection.right and .up conditions.
* Add alignment 1.0 test to left - reverse growth
* Add Reverse List showOnScreen test
* Formatting fix.
getTransformTo now includes ancestor in the transform it returns, except
for if ancestor is the root view, ensuring that the transform remains in
logical pixel space.
* painting and semantics
* more comments
* fixing ci
* review fixes
* add assert for id
* rename custom layer factory to layer builder
* review updates
* partial review fixes
* some doc updates
* more doc updates
* only expose getter for id in PlatformViewController
* doc updates/removing all the references
* remove extra
* more doc updates
* some doc updates
* more doc fixes
* review fixes
This reverts commit eb0b17902876f1a75eb7180c0b9f3571efb312b8.
Skia Gold post-submit test were failing due to the service account not being found on Cirrus.
Breaking change to extremely rarely used ParentDataWidget.debugDescribeInvalidAncestorChain api changing the return type of the method from String to DiagnosticsNode.
* Merge in changes for inline widgets
* Make analyzer happy, fix tests
* Fix analyzer
* Add missing doc
* Docs on RichText
* Fix analyzer some more
* Remove whitespace at end of line
* Update goldens
* Text fixes
* Analyzer
Revert "Merge branch 'master' into master"
This reverts commit e3a03c04c4530b06e77383fd73d2c43644dc832a, reversing
changes made to 64749826498123e795c77f9bec8cea804a40a051.
This changes Listener to trigger enter/move/exit in all Listeners below the pointer, not just the leaf region (the first region hit). This is because we need to allow listeners to be nested so that, say, a widget that handles changing color on hover, but also is wrapped in a Tooltip (that handles hover) can trigger both actions, not just one.
To that end, I added a findAll to Layer, similar to the existing find method that was previously used. It returns an iterator over annotated layers which match the given data type.
Since the findAll is implemented as returning an Iterable (and is sync*), I re-implemented the find routines as just returning the first result from findAll, since that should be just as efficient, and would then prevent duplication in the implementation.