1. 21 Aug, 2017 6 commits
  2. 18 Aug, 2017 1 commit
  3. 17 Aug, 2017 2 commits
  4. 16 Aug, 2017 5 commits
  5. 15 Aug, 2017 7 commits
  6. 14 Aug, 2017 2 commits
  7. 12 Aug, 2017 1 commit
    • ameiyil's avatar
      Wrap the label widget of the Chip in a Flexible. (#11523) (#11554) · b156a0f0
      ameiyil authored
      * Wrap the label widget of the Chip in a Flexible. (#11523)
      
      * This allows the Chip to constrain the size of its content after taking into account the space occupied by the avatar and delete icon (if they are present)
      
      * Adding unit tests to evaluate correct size constraints of the Chip widget's label. (#11523)
      
      * Minor change in formatting.
      
      * Adjust function formatting.
      b156a0f0
  8. 11 Aug, 2017 3 commits
  9. 10 Aug, 2017 4 commits
  10. 09 Aug, 2017 6 commits
  11. 08 Aug, 2017 3 commits
    • Michael Goderbauer's avatar
      Make tear-offs cacheable for RenderSemanticsGestureHandler (#11556) · 3b76e7e2
      Michael Goderbauer authored
      * Make tear-offs cachable for RenderSemanticsGestureHandler
      
      Fixes https://github.com/flutter/flutter/issues/11552
      
      * comment fix
      
      * refactor
      3b76e7e2
    • Michael Goderbauer's avatar
      a11y: handle left/right scrolls correctly (#11309) · 1d9f834f
      Michael Goderbauer authored
      * a11y: handle left/right scrolls correctly
      
      * fix keep alive test
      
      * fix scaffold test
      1d9f834f
    • 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