From a62a8dd15e3deb4622e3ee8fd844999cf4fafc41 Mon Sep 17 00:00:00 2001 From: Siarhei Vishniakou Date: Fri, 8 Jun 2018 21:17:33 +0100 Subject: Move displayid into InputEvent There are certain use cases where key events should be associated with a particular display. Refactor KeyEvent and MotionEvent to have an associated display id. Remove "hasAssociatedDisplay" variable from KeyboardInputMapper, it just used to mirror "isOrientationAware". If the keyboard is orientation aware (= it is physically attached to a display, and therefore rotates together with that display), then associate that keyboard with the internal viewport. Otherwise, the key events are not associated with any particular display. Remaining to do: - make mInternalDisplay, mExternalDisplay, mVirtualDisplays into a single vector with type (internal, external, virtual) - have getDisplayViewport return std::optional (will require deep changes) Bug: 64258305 Test: atest inputflinger_tests libinput_tests Change-Id: I4fe145e74cb59310efaa55bfc9dc3c2b3bd997e3 --- libs/input/KeyCharacterMap.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'libs/input/KeyCharacterMap.cpp') diff --git a/libs/input/KeyCharacterMap.cpp b/libs/input/KeyCharacterMap.cpp index cba1111606..b561b605b4 100644 --- a/libs/input/KeyCharacterMap.cpp +++ b/libs/input/KeyCharacterMap.cpp @@ -487,7 +487,7 @@ void KeyCharacterMap::addKey(Vector& outEvents, int32_t deviceId, int32_t keyCode, int32_t metaState, bool down, nsecs_t time) { outEvents.push(); KeyEvent& event = outEvents.editTop(); - event.initialize(deviceId, AINPUT_SOURCE_KEYBOARD, + event.initialize(deviceId, AINPUT_SOURCE_KEYBOARD, ADISPLAY_ID_NONE, down ? AKEY_EVENT_ACTION_DOWN : AKEY_EVENT_ACTION_UP, 0, keyCode, 0, metaState, 0, time, time); } -- cgit v1.2.3-59-g8ed1b