)]}'
{
  "commit": "3c16cf6a7498863bdbe9877dbf5f11eb2f3cf5e8",
  "tree": "c97d3c2f85ae70e5c62a5da3ccb8ddf4b6bfa706",
  "parents": [
    "64d1097e53d3ee81f0256bbf7384929657176a09"
  ],
  "author": {
    "name": "Greg Spencer",
    "email": "gspencergoog@users.noreply.github.com",
    "time": "Thu May 16 12:56:16 2019 -0700"
  },
  "committer": {
    "name": "GitHub",
    "email": "noreply@github.com",
    "time": "Thu May 16 12:56:16 2019 -0700"
  },
  "message": "Fix Focus.of to not find FocusScope nodes. (#32826)\n\nUntil this change, Focus.of would return a FocusScopeNode if it found a FocusScope widget. This isn\u0027t really all that useful, and can easily lead to bad situations where many widgets think that the scope they are in (or the root scope!) is their indication of being focused.\r\n\r\nThis changes Focus.of to throw an exception if it doesn\u0027t find a Focus widget before reaching the nearest FocusScope widget, or the root of the widget hierarchy.\r\n\r\nIt also adds a nullOk optional bool to Focus.of so that if a caller expects to not find a Focus widget, it can deal with that as it sees fit. I modified InkWell to use this new behavior.\r\n\r\nThis fixes an unreported issue that widgets using an InkWell will be drawn as focused the first time they are visited.",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "1e22fe475f6ea9ad3b7c128b07eb2dcf0588695b",
      "old_mode": 33188,
      "old_path": "packages/flutter/lib/src/material/ink_well.dart",
      "new_id": "ba956f5e77dfbf071d9e03a8be209df9395ffa22",
      "new_mode": 33188,
      "new_path": "packages/flutter/lib/src/material/ink_well.dart"
    },
    {
      "type": "modify",
      "old_id": "f73f753d72895988a55e0bf3a3f5109820b7023d",
      "old_mode": 33188,
      "old_path": "packages/flutter/lib/src/widgets/focus_manager.dart",
      "new_id": "32837c977fe43d0218654ecefb7fe0107a5c5b84",
      "new_mode": 33188,
      "new_path": "packages/flutter/lib/src/widgets/focus_manager.dart"
    },
    {
      "type": "modify",
      "old_id": "96a2d723e89d63dfd422f27c1942b1a3c00bd4ad",
      "old_mode": 33188,
      "old_path": "packages/flutter/lib/src/widgets/focus_scope.dart",
      "new_id": "fd50e9ece5033377dda7aaa63674cacc2c7ea0cb",
      "new_mode": 33188,
      "new_path": "packages/flutter/lib/src/widgets/focus_scope.dart"
    },
    {
      "type": "modify",
      "old_id": "6775c16326d7bf5093323337a60b4e4957df3182",
      "old_mode": 33188,
      "old_path": "packages/flutter/test/widgets/focus_scope_test.dart",
      "new_id": "04faedba048fdc8562e2d88d0e8aba82c4059901",
      "new_mode": 33188,
      "new_path": "packages/flutter/test/widgets/focus_scope_test.dart"
    }
  ]
}
