1. 28 Feb, 2020 2 commits
  2. 27 Feb, 2020 4 commits
    • Darren Austin's avatar
    • Greg Spencer's avatar
      Change Focus.unfocus to take a disposition for where the focus… (#50831) · d4226566
      Greg Spencer authored
      When Focus.unfocus is called, the caller usually just thinks about wanting to remove focus from the node, but really, unfocus is a request to automatically pass the focus to another (hopefully useful) node.
      
      This PR removes the focusPrevious flag from unfocus, and replaces it with a disposition enum that indicates where the focus should go from here.
      
      The other value of the UnfocusDisposition enum is UnfocusDisposition.scope.
      
      UnfocusDisposition.previouslyFocusedChild is closest to what focusPrevious used to do: focus the nearest enclosing scope and use its focusedChild field to walk down the tree, finding the leaf focusedChild. This PR modifies it slightly so that it walks up to the nearest focusable enclosing scope before trying to focus the children. This change addresses #48903
      
      A new mode: UnfocusDisposition.scope will focus the nearest focusable enclosing scope of this node without trying to use the FocusScopeNode.focusedChild value to descend to the leaf focused child. This is useful as a default for both text field finalization and for what happens when canRequestFocus is set to false. It allows the scope to stay focused so that nextFocus/previousFocus still work as expected, but removes the focus from primary focus.
      
      In addition to those changes, unfocus called on a FocuScope that wasn't the primary focus used to unfocus the primary focus instead. I removed that behavior, since it was buggy: if the primary focus was inside of a child scope, and you called unfocus on the parent scope, then the child scope could have focused another of its children instead, leaving the scope that you called unfocus on with hasFocus returning true still. If you want to remove the focus from the primary focus instead of the scope, that's easy enough to do: just call primaryFocus.unfocus().
      
      Fixes #48903
      d4226566
    • Dan Field's avatar
      444b13b8
    • Dan Field's avatar
      Live image cache (#51485) · c75db983
      Dan Field authored
      * Reland "Live image cache" (#51441)
      
      This reverts commit 419a2853.
      
      * Make evict safer
      c75db983
  3. 26 Feb, 2020 4 commits
  4. 25 Feb, 2020 1 commit
  5. 24 Feb, 2020 3 commits
  6. 23 Feb, 2020 1 commit
  7. 21 Feb, 2020 2 commits
    • Greg Spencer's avatar
      Fix stuck keys when shift is released before the letter. (#51095) · c5dd3ec4
      Greg Spencer authored
      This fixes a problem where if you press "Shift" and then "A", then release "Shift" and then "a", then the "A" key will be "stuck" on because the logical key for the key down message is different (capital "A") from the logical key for the key up message (lowercase "a").
      
      This PR changes the pressed keys logic so that it uses the physical key to add/remove keys from the list of pressed keys, but keeps the associated logical key.
      
      This does mean that after the "Shift" key goes up, the pressed keys contains a capital "A" and it doesn't switch to be a lowercase "a", but there isn't currently any mechanism we can use to do that remapping. This is far less surprising than the current behavior, but is still not quite correct.
      
      I fixed the event simulation code to take a physicalKey so that it could be matched with the logical key, but the event simulation code isn't up to the task, since it can only simulate keys that appear in the key maps. The new platform key event design should fix that (added TODOs).
      c5dd3ec4
    • Yegor's avatar
      Enable TextStyle hash test on the Web (#50985) · d5844e8a
      Yegor authored
      d5844e8a
  8. 20 Feb, 2020 5 commits
  9. 19 Feb, 2020 2 commits
  10. 18 Feb, 2020 2 commits
  11. 14 Feb, 2020 3 commits
  12. 13 Feb, 2020 6 commits
  13. 12 Feb, 2020 5 commits