Prevously we listened for events on the document and then walked up the
component hierarchy looking for EventListenerNodes. Now we do something similar
by hooking the event dispatching logic in the AppView.
R=eseidel@chromium.org
Review URL: https://codereview.chromium.org/1153343004
We'll eventually turn this into a full fn2 component, but for now it's just an
example.
To make this work, I created a schedule.dart as a start to implementing
scheduler.md. For now, I've kept the API similar to the web platform so that
the old world can continue use it backed by sky.window.requestAnimationFrame.
R=eseidel@chromium.org
BUG=
Review URL: https://codereview.chromium.org/1145973009
Experimenting with using the observatory profiler, I noticed two pieces of
low-hanging performance fruit. This change removes about 4% of the total
profile for layouting out and painting the flex demo.
R=eseidel@chromium.org
Review URL: https://codereview.chromium.org/1155043004
This dramatically simplifies the layout model.
I haven't gone through and simplified the existing functions, we should probably go through and figure out if they can be cleaned up a bit.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/1161983004
This is needed for cases where the UINode doesn't have a list of
children (so it doesn't go through the RenderNodeWrapper sync logic
that removes children), but it still has multiple slots, and needs to
support removing nodes from those slots. (For example, removing a
drawer from a ScaffoldContainer.)
Also, expose syncChild (it used to be private) so it can be overridden
in descendants outside fn.dart.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/1158563003
This is needed to create a ScaffoldContainer in scaffold.dart.
This exposes:
UINode._root => root
UINode._removeChild => removeChild
RenderNodeWrapper._createNode => createNode
RenderNodeWrapper._emptyNode => emptyNode
RenderNodeWrapper._syncRenderNode => syncRenderNode
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/1148323004
- makes the event logic not involve a boolean return value (since we ignored it anyway)
- splits the event handling logic into two steps, hit testing and event dispatch
- introduces an App class on the Dart side to factor out the interaction with the C++ side
- ports sector-layout and simple_render_tree to the new App infrastructure
- port simple_render_tree to the new event handling logic
- implement hit testing for the sector-layout demo
R=eseidel@chromium.org
Review URL: https://codereview.chromium.org/1143343004
This only handles really basic cases and doesn't understand
justification, wrapping, and so on. Submitting for code
review so I can get some early feedback before I invest
more time into making it correct.
R=ianh@google.com, abarth
Review URL: https://codereview.chromium.org/1151293002
- Also, fix clean builds, by not including the sdk_ext_directory as an input dependency because there is no rule to create it.
Review URL: https://codereview.chromium.org/1147223006
Before, OneChildListRenderNodeWrappers were responsible for removing
the child nodes' RenderCSS nodes from their containers, and for moving
those around when nodes were reordered. Now, they're also responsible
for adding them.
R=abarth@chromium.org
Review URL: https://codereview.chromium.org/1145953003