1. 05 Sep, 2017 4 commits
  2. 03 Sep, 2017 1 commit
    • Adam Barth's avatar
      Add RTL support to AnimatedContainer (#11910) · baf3b45e
      Adam Barth authored
      Also, fix the interpolation between visual and directional fractional
      offsets. The interpolation now works visually in whatever direction the
      result eventually gets resolved into.
      
      Fixes #11847
      Fixes #11357
      baf3b45e
  3. 01 Sep, 2017 3 commits
  4. 31 Aug, 2017 3 commits
  5. 30 Aug, 2017 2 commits
  6. 29 Aug, 2017 2 commits
  7. 28 Aug, 2017 3 commits
    • Michael Goderbauer's avatar
      Semantic hit test order for Slivers (#11792) · 8ecf19d8
      Michael Goderbauer authored
      * Semantic hit test order for Slivers
      
      * ++
      
      * fix double space
      
      * refactoring
      
      * fix test
      
      * comment fix
      
      * tests
      
      * remove accidental debugDumpSemanticsTree
      
      * review comments
      
      * fix button
      8ecf19d8
    • Ian Hickson's avatar
      RTL: Padding, Flex (#11709) · f235a2c1
      Ian Hickson authored
      * Introduce a Directionality inherited widget which sets the ambient LTR vs RTL mode (defaulting to null, which means you cannot use directionality-influenced values).
      
      * Make it possible to configure Padding (including Container.padding and Container.margin) using a directionality-agnostic EdgeInsets variant.
      
      * Provide textDirection and verticalDirection controls on Row and Column to make them RTL-aware.
      
      * Introduce a variant of FractionalOffset based on the EdgeInsets variant. Not yet actually used.
      
      * Fix all the tests that depended on Row defaulting to LTR.
      f235a2c1
    • Ian Hickson's avatar
      3dd1a05a
  8. 26 Aug, 2017 1 commit
    • Michael Goderbauer's avatar
      Doc updates for Semantics; always reset SemanticsNode (#11770) · f2653015
      Michael Goderbauer authored
      * refactor to ensureAction + some related doc fixes
      
      * Update docs for markNeedsSemanticsUpdate
      
      * rewording
      
      * rewording
      
      * ensureAction test
      
      * ensureAction test
      
      * ensureAction test
      
      * more tests
      
      * refactor to allways reset node
      
      * tiny fixes
      
      * more test
      
      * doc fixes
      
      * one more test
      
      * review comments
      f2653015
  9. 25 Aug, 2017 1 commit
  10. 23 Aug, 2017 3 commits
  11. 21 Aug, 2017 1 commit
    • Jacob Richman's avatar
      Bare bones widget inspector support. (#10332) · 5462ddb9
      Jacob Richman authored
      Bare bones widget inspector support.
      
      Toggle the widget inspector from the flutter tool by pressing 'i'.
      When the widget inspector is select mode:
      Pointer down to to inspect a widget.
      Pointer click to finalize selection of a widget. You can now interact
      with the application as you normally would but with the inspected widget
      highlighted.
      Click the inspect icon in bottom left corner of screen to reactivate
      select mode.
      5462ddb9
  12. 09 Aug, 2017 1 commit
  13. 08 Aug, 2017 1 commit
    • Michael Goderbauer's avatar
      Don't trigger an assert when markNeedsSemanticsUpdate is called multiple times... · b551f534
      Michael Goderbauer authored
      Don't trigger an assert when markNeedsSemanticsUpdate is called multiple times in edge cases (#11544)
      
      * Don't trigger assert if a render object ceases to be a semantic boundary
      
      This bug was exposed by https://github.com/flutter/flutter/pull/11309, which caused the following assertion to trigger when scrolling in the Animation demo:
      
      ```
      The following assertion was thrown during _updateSemantics():
      'package:flutter/src/rendering/object.dart': Failed assertion: line 2626 pos 16: 'fragment is
      _InterestingSemanticsFragment': is not true.
      ```
      
      A minimal reproduction of the bug can be found in `semantics_10_test.dart`, which has been added as a regression test for the bug by this PR.
      
      Looking at that test, here is a description of the faulty behaviour:
      1. During the second `pumpWidget` call `RenderExcludeSemantics` marks itself as needing a semantics update (due to excluding going from `false` -> `true`).
      2. This causes the nearest ancestor with semantics information (here: `RenderSemanticsAnnotations` representing the "container" Semantics widget) to be added to the `_nodesNeedingSemantics` list.
      3. `RenderSliverList` (implementation behind ListView) marks itself as needing a semantics update (due to its changing children).
      4. This causes the `RenderSemanticsGestureHandler` to be added to the `_nodesNeedingSemantics` list.
      5. Next, canDrag is updated from `true` -> `false`. This means, `RenderSemanticsGestureHandler` is no longer a semantics boundary, it marks itself as needing a semantics update.
      6. The nearest ancestor with semantics (`RenderSemanticsAnnotations`, the "container") is added to the `_nodesNeedingSemantics` list (this is a no-op because it is already in the list).
      7. During `flushSemantics`, the `_nodesNeedingSemantics` list is walked. The first entry (`RenderSemanticsAnnotations`) updates the semantics tree to only contain the container widget and drop everything else (= no children of the ExcludeSemantics widget are walked).
      8. The second entry (`RenderSemanticsGestureHandler`) is updated. It does not add any semantics of its own and is no longer a semantics boundary. Therefore, it wants to merge its descendent semantics into its parents. Here is where the assert throws because the algorithm assumes that every entry in the `_nodesNeedingSemantics` list will produce and own an `_InterestingSemanticsFragment` (passing your semantics on to your parents is not interesting).
      
      The problem here seems to be step 4 in combination with step 5. In step 4 we rely on the fact that `RenderSemanticsGestureHandler` is an (explicit or implicit) semantics boundary and that it will be able to absorb the semantics change of `RenderSliverList`. This is true
      at this time. However, in step 4 `RenderSemanticsGestureHandler` decides to no longer be an (explicit or implicit) semantics boundary and our assumption from step 5 becomes incorrect. We did nothing to correct this assumption.
      
      This PR removes a node, that could potentially cease to be a (explicit or implicit) semantics boundary from the `_nodesNeedingSemantics` list to fix that problem. Please node that this does not mean that the node's semantics will not be updated: The node's closest ances
      tor with semantics is added to that list during the `markNeedsSemanticsUpdate` call. During `flushSemantics` we will walk from this node to update the semantics of it's children (if changed), which will include the node in question.
      
      * tiny fix
      
      * simplify test
      
      * analyzer fixes
      
      * review comments
      b551f534
  14. 04 Aug, 2017 1 commit
  15. 03 Aug, 2017 1 commit
  16. 02 Aug, 2017 1 commit
    • Yegor's avatar
      FadeInImage: shows a placeholder while loading then fades in (#11371) · 89d06450
      Yegor authored
      * FadeInImage: shows a placeholder while loading then fades in
      
      * fix dartdoc quotes
      
      * license headers; imports
      
      * use ImageProvider; docs; constructors
      
      * _resolveImage when placeholder changes
      
      * address comments
      
      * docs re ImageProvider changes; unsubscribe from placeholder
      
      * rebase
      
      * address comments
      89d06450
  17. 31 Jul, 2017 1 commit
  18. 28 Jul, 2017 1 commit
  19. 27 Jul, 2017 1 commit
    • Ian Hickson's avatar
      Increase the touch slop. (#11419) · 87445e59
      Ian Hickson authored
      It was 8.0. It's now arbitrarily 18.0.
      
      Changing this required adjusting some tests. Adjusting the tests
      required debugging the tests. Debugging the tests required some tools
      to help debugging gesture recognizers and gesture arenas, so I added
      some. It also required updating some toString() methods which resulted
      in some changes to the tree diagnostics logic.
      
      Also I cleaned up some docs while I was at it.
      87445e59
  20. 25 Jul, 2017 2 commits
  21. 21 Jul, 2017 3 commits
    • Ian Hickson's avatar
      Add documentation and clean up code. (#11330) · 8f56f6fd
      Ian Hickson authored
      Mainly, this adds documentation to members that were previously
      lacking documentation.
      
      It also adds a big block of documentation about improving performance
      of widgets.
      
      This also removes some references to package:collection and adds
      global setEquals and listEquals methods in foundation that we can use.
      (setEquals in particular should be much faster than the
      package:collection equivalent, though both should be faster as they
      avoid allocating new objects.) All remaining references now qualify
      the import so we know what our remaining dependencies are.
      
      Also lots of code reordering in Flutter driver to make the code
      consistent and apply the style guide more thoroughly.
      8f56f6fd
    • Ian Hickson's avatar
      AnimatedCrossFade layout customisation (#11343) · 1f08bda3
      Ian Hickson authored
      * Optimise AnimatedSize for the tight case.
      * Remove `default` from a switch statement over enum (so that analyzer will complain if we add enum values).
      * Adopt the Size since we use it after the child may have changed (which would throw normally).
      * AnimatedCrossFade.layoutBuilder
      1f08bda3
    • Jason Simmons's avatar
      Do not call saveLayer for physical model layers whose bounds are simple rectangles (#11324) · 9d901327
      Jason Simmons authored
      This is similar to an optimization done in PhysicalModelLayer::Paint in the engine
      9d901327
  22. 20 Jul, 2017 1 commit
  23. 19 Jul, 2017 2 commits
    • Ian Hickson's avatar
      More debug help. (#11308) · 0b392665
      Ian Hickson authored
      0b392665
    • Michael Goderbauer's avatar
      a11y: implement new SemanticsAction "showOnScreen" (v2) (#11156) · b5c461a9
      Michael Goderbauer authored
      * a11y: implement new SemanticsAction "showOnScreen" (v2)
      
      This action is triggered when the user swipes (in accessibility mode) to the last visible item of a scrollable list to bring that item fully on screen.
      
      This requires engine rolled to flutter/engine#3856.
      
      I am in the process of adding tests, but I'd like to get early feedback to see if this approach is OK.
      
      * fix null check
      
      * review comments
      
      * review comments
      
      * Add test
      
      * fix analyzer warning
      b5c461a9