Support mouse pointer on external displays (1/2)
If input source is mouse, InputTouchMapper and CursorInputMapper will assign
a PointerController which associated with some display.
When dispatch a motion event, it should be assigned the displayId from
PointerController.
- Add getDisplayId for PointerControllerInterface to get the current
associated display id.
- Add updatePointerDisplay for InputReaderPolicyInterface to find and
associate the specified display viewport.
- Add test cases for TouchInputMapper and CursorInputMapper.
Bug: 113559891
Test: ActivityView test app
Test: atest inputflinger_tests
Change-Id: I43f848041a7c727f74ad3e00eef546498a7d9314
diff --git a/services/inputflinger/include/PointerControllerInterface.h b/services/inputflinger/include/PointerControllerInterface.h
index e94dd94..bc0f1f9 100644
--- a/services/inputflinger/include/PointerControllerInterface.h
+++ b/services/inputflinger/include/PointerControllerInterface.h
@@ -98,6 +98,9 @@
/* Removes all spots. */
virtual void clearSpots() = 0;
+
+ /* Gets the id of the display where the pointer should be shown. */
+ virtual int32_t getDisplayId() const = 0;
};
} // namespace android