1. 20 Mar, 2018 2 commits
  2. 19 Mar, 2018 2 commits
  3. 12 Mar, 2018 1 commit
  4. 09 Mar, 2018 1 commit
  5. 28 Feb, 2018 2 commits
  6. 15 Feb, 2018 1 commit
  7. 13 Feb, 2018 1 commit
    • Greg Spencer's avatar
      Move geometric sort for semantics to the framework side. (#14539) · 7be0bd1c
      Greg Spencer authored
      This adds geometric sort ordering back in for semantics nodes that don't have a sort order defined.
      
      With this change, widgets that either have no sort order, or have an equivalent sort order, will be compared geometrically. The comparison is between the two starting corners, so it is TextDirection-aware: parent nodes that are set to have LTR text will compare upper left corners of their children, and upper right when set to RTL.
      
      Also fixed a bug in the Transform widget that didn't mark modified nodes as needing a semantics update.
      7be0bd1c
  8. 10 Feb, 2018 1 commit
  9. 08 Feb, 2018 1 commit
  10. 06 Feb, 2018 1 commit
    • Greg Spencer's avatar
      Adds the semantic node traversal API. (#14060) · 14309b93
      Greg Spencer authored
      This adds an API for defining the semantic node traversal order.
      
      It adds a sortOrder argument to the Semantics widget, which is a class that can define a list of sort keys to sort on. The keys are sorted globally so that an order that doesn't have to do with the current widget hierarchy may be defined.
      
      It also adds a shortcut sortKey argument to the Semantics widget that simply sets the sortOrder to just contain that key.
      
      The platform side (flutter/engine#4540) gets an additional member in the SemanticsData object that is an integer describing where in the overall order each semantics node belongs. There is an associated engine-side change that takes this integer and uses it to order widgets for the platform's accessibility services.
      14309b93
  11. 02 Feb, 2018 1 commit
  12. 01 Feb, 2018 2 commits
  13. 31 Jan, 2018 1 commit
    • amirh's avatar
      Support arbitrary shaped Material. (#14367) · 0672055a
      amirh authored
      For backward compatibility we keep supporting specifying the shape as a
      combination of MaterialType and borderRadius, and we just use that as a
      default when shapeBorder is null.
      
      To cleanup the implementation if shapeBorder was not specified we just
      translate the specified shape to a shapeBorder internally.
      I benchmarked paint, layout and hit testing, with the specialized shape
      clippers vs. the equivalent path clippers and did not see any
      significant performance difference.
      
      For testing, I extended the clippers/physicalShape matchers to match either the
      specialized shape or the equivalent shape.
      0672055a
  14. 26 Jan, 2018 2 commits
  15. 19 Jan, 2018 1 commit
  16. 12 Jan, 2018 4 commits
  17. 10 Jan, 2018 1 commit
    • Ian Hickson's avatar
      Make DecoratedBox repaint after being reparented (#13927) · 316d8e1c
      Ian Hickson authored
      Fixes https://github.com/flutter/flutter/issues/12553
      
      The root cause of https://github.com/flutter/flutter/issues/12553 was that when the refresh indicator went away, which happened after the avatars had started their image loads but before the avatars had loaded, the DecoratedBoxes, along with the rest of the list, got GlobalKey-reparented, which caused the RenderDecoratedBox objects to unregister from the DecorationImagePainters, but they never re-registered since the whole subtree was in a RepaintBoundary and was therefore not explicitly repainted when the tree got reattached.
      
      This fixes the bug by explicitly requiring any RenderDecoratedBox to repaint when it's reattached. This is probably a little more aggressive than required; we could probably expose a flag on Decoration that says whether or not the onChanged handler will ever be invoked, and only call markNeedsPaint if that's true, but we'll do that if it turns out that there's a performance issue here.
      
      (This patch also introduces a bunch of improved debugging information that I used to track down the bug.)
      316d8e1c
  18. 09 Jan, 2018 3 commits
  19. 05 Jan, 2018 1 commit
  20. 22 Dec, 2017 1 commit
    • Michael Goderbauer's avatar
      Fixes crash caused by invisible semantics children (#13740) · 4e13cd07
      Michael Goderbauer authored
      **tl;dr:** A `RenderObject` can only be an effective semantics boundary if it actually owned a `SemanticsNode` in the previous tree generation.
      
      When using the `BlockSemantics` widget it is possible to introduce `RenderObject`s that are configured to be a semantics boundary, but because their semantics are blocked by `BlockSemantics` they will not (immediately) end up owning a `SemanticsNode`. When now a descendant of such a node-less semantics boundary marks itself as needing a semantics update we walk up the tree until we find the closest semantics boundary (which is our node-less `RenderObject`). We now incorrectly assume that this semantics boundary has a valid `SemanticsNode` and only regenerate the semantics subtree below this node. However, because the identified semantics boundary doesn't actually own a valid `SemanticsNode` asserts are throwing (e.g. `Child with id xx is invisible and should not be added to tree.`).
      
      To fix this problem, we can just abort the walk if we reach a semantics boundary without a semantics node because (for now) we know that the semantics information of this branch will not make it into the final semantics tree.
      If the semantics block is ever removed, the current algorithm re-generates the semantics for the entire branch and the semantics will be up-to-date then despite the abort. I've added a test to verify this to make sure it continues to work even when we change the algorithm.
      
      Fixes https://github.com/flutter/flutter/issues/13326.
      /cc @gavindoughtie FYI
      4e13cd07
  21. 16 Dec, 2017 1 commit
  22. 13 Dec, 2017 1 commit
  23. 08 Dec, 2017 2 commits
    • Yegor's avatar
      Make time picker accessible (#13152) · b80751cd
      Yegor authored
      * make time picker accessible
      
      * use new CustomPaint a11y API
      
      * flutter_localizations tests; use bigger distance delta
      
      * fix am/pm control; selected values
      
      * fix translations; remove @mustCallSuper in describeSemanticsConfiguration
      
      * exclude AM/PM announcement from iOS as on iOS the label is read back automatically
      b80751cd
    • Michael Goderbauer's avatar
      a11y cursor movement (#13405) · 52d06b82
      Michael Goderbauer authored
      52d06b82
  24. 07 Dec, 2017 1 commit
    • Ian Hickson's avatar
      Move image logic from services/ to painting/. (#13409) · 44e228eb
      Ian Hickson authored
      This allows the scheduler library to depend on the services library
      and the painting library to depend on the scheduler library without
      the services library having to depend on the scheduler library.
      
      While I was at it I also cleaned up some of the binding logic: the
      licenses logic can now be overridden (and the test library does so),
      and the image cache can now be overridden as well.
      44e228eb
  25. 05 Dec, 2017 1 commit
  26. 30 Nov, 2017 1 commit
    • Michael Goderbauer's avatar
      Adapt markNeedsSemanticsUpdate algorithm to new semantics tree compiler (#13274) · 6493c8b4
      Michael Goderbauer authored
      * ensures that only semantics boundaries will be added to owner._nodesNeedingSemantics as expected by compiler.
      * no longer throws assert if markNeedsSemanticsUpdate is called on non-semantic-boundary render object with a non-semantic-boundary parent.
      * Fixes #13109.
      * removes onlyLocalUpdates from markNeedsSemanticsUpdate as its no longer needed.
      6493c8b4
  27. 17 Nov, 2017 1 commit
    • Greg Spencer's avatar
      Fix spelling errors in all the dartdocs. (#13061) · 0259be90
      Greg Spencer authored
      I got tired of drive-by spelling fixes, so I figured I'd just take care of them all at once.
      
      This only corrects errors in the dartdocs, not regular comments, and I skipped any sample code in the dartdocs. It doesn't touch any identifiers in the dartdocs either. No code changes, just comments.
      0259be90
  28. 09 Nov, 2017 1 commit
    • Greg Spencer's avatar
      Add an UnconstrainedBox and factor out debug overflow indicator. (#12856) · 3541ad0a
      Greg Spencer authored
      UnconstrainedBox will allow its child to size itself as if it had no constraints, and then attempt to fit around that object, until its own constraints are exceeded, in which case it will clip and display an overflow warning.
      
      I also factored out DebugOverflowIndicator, which will draw overflow indicators on containers which overflow but aren't expected to.
      3541ad0a
  29. 07 Nov, 2017 1 commit