)]}'
{
  "commit": "47cf0a089e4b1f02045e72b881f48ff1a2bdbd71",
  "tree": "c50d3a6adc75901be01fc32defab1f2fc4ff733f",
  "parents": [
    "92ffb4885f5da471a52481820357a63bdbe369da"
  ],
  "author": {
    "name": "Prabir Pradhan",
    "email": "prabirmsp@google.com",
    "time": "Thu Mar 11 20:30:57 2021 -0800"
  },
  "committer": {
    "name": "Prabir Pradhan",
    "email": "prabirmsp@google.com",
    "time": "Fri May 07 11:19:23 2021 -0700"
  },
  "message": "Add NO_FOCUS_CHANGE flag to pointer gestures to disallow focus changes\n\nWhen using a multi-touch trackpad, it is the expected behavior in most\noperating systems that the user is allowed to perform gestures (like\nscroll, pinch, etc.) on an unfocused window without bringing it into\nfocus. The previous behavior in Android was that any DOWN event on an\nunfocused window would bring the unfocused window into focus, including\nany pointer gesture.\n\nThis change adds the NO_FOCUS_CHANGE flag to the MotionEvents generated\nby certain pointer gestures so that it does not change window focus.\nGestures such as tap and tap drag are not affected.\n\nBug: 173733166\nTest: atest inputflinger_tests\nTest: manual: in multi-display scenario with freeform windows and a\ntrackpad: open two freeform windows so that they overlap, perform\ngesture (scroll/pinch) on unfocused window, observe that the window is\nnot focused; perform tap on unfocused window, observe that the window is\nfocused.\n\nChange-Id: I74e52f8daa13d4e6c047bc23982ec56942c555f6\n",
  "tree_diff": [
    {
      "type": "modify",
      "old_id": "7b522bbc1ebdd764c7a8122b1cd8ec9cd4d9af1c",
      "old_mode": 33188,
      "old_path": "include/input/Input.h",
      "new_id": "a4a7f8b18385f453c4dd67491f30f65fc1971d7d",
      "new_mode": 33188,
      "new_path": "include/input/Input.h"
    },
    {
      "type": "modify",
      "old_id": "16cb7d7a51d38e8c71d80c75e5e1afecae010859",
      "old_mode": 33188,
      "old_path": "services/inputflinger/dispatcher/InputDispatcher.cpp",
      "new_id": "1bbdcbbc2407df7f7eea15c944d300083c835d6a",
      "new_mode": 33188,
      "new_path": "services/inputflinger/dispatcher/InputDispatcher.cpp"
    },
    {
      "type": "modify",
      "old_id": "13712eee539057d86cb39001b20946468942717e",
      "old_mode": 33188,
      "old_path": "services/inputflinger/reader/mapper/TouchInputMapper.cpp",
      "new_id": "fb654847ed64ebd0cb9b000f880b4a80c2efb201",
      "new_mode": 33188,
      "new_path": "services/inputflinger/reader/mapper/TouchInputMapper.cpp"
    },
    {
      "type": "modify",
      "old_id": "5146299bd53f3807450686207aaf766afaf17c6f",
      "old_mode": 33188,
      "old_path": "services/inputflinger/reader/mapper/TouchInputMapper.h",
      "new_id": "920f8428f3b991173f0a801925c0c215459261ea",
      "new_mode": 33188,
      "new_path": "services/inputflinger/reader/mapper/TouchInputMapper.h"
    },
    {
      "type": "modify",
      "old_id": "9687c83ca2c7a6a468f21cd6f9764c5cd9b885fc",
      "old_mode": 33188,
      "old_path": "services/inputflinger/tests/InputDispatcher_test.cpp",
      "new_id": "bbf51f66bb89b4b3d9cbb33791d4013ba8f038c5",
      "new_mode": 33188,
      "new_path": "services/inputflinger/tests/InputDispatcher_test.cpp"
    }
  ]
}
