diff options
Diffstat (limited to 'libs/ui/InputDispatcher.cpp')
| -rw-r--r-- | libs/ui/InputDispatcher.cpp | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/libs/ui/InputDispatcher.cpp b/libs/ui/InputDispatcher.cpp index 5da16767599b..b5744b3e5eb5 100644 --- a/libs/ui/InputDispatcher.cpp +++ b/libs/ui/InputDispatcher.cpp @@ -1916,6 +1916,14 @@ InputDispatcher::splitMotionEvent(const MotionEntry* originalMotionEntry, BitSet                  // The first/last pointer went down/up.                  action = maskedAction == AMOTION_EVENT_ACTION_POINTER_DOWN                          ? AMOTION_EVENT_ACTION_DOWN : AMOTION_EVENT_ACTION_UP; +            } else { +                // A secondary pointer went down/up. +                uint32_t splitPointerIndex = 0; +                while (pointerId != splitPointerIds[splitPointerIndex]) { +                    splitPointerIndex += 1; +                } +                action = maskedAction | (splitPointerIndex +                        << AMOTION_EVENT_ACTION_POINTER_INDEX_SHIFT);              }          } else {              // An unrelated pointer changed.  |