@@ -150,7 +150,9 @@ public boolean onGenericMotionEvent(MotionEvent event) {
150150 // Mouse hover support is not implemented for API < 18.
151151 boolean isPointerEvent = Build .VERSION .SDK_INT >= Build .VERSION_CODES .JELLY_BEAN_MR2
152152 && event .isFromSource (InputDevice .SOURCE_CLASS_POINTER );
153- if (!isPointerEvent || event .getActionMasked () != MotionEvent .ACTION_HOVER_MOVE ) {
153+ boolean isMovementEvent = (event .getActionMasked () == MotionEvent .ACTION_HOVER_MOVE
154+ || event .getActionMasked () == MotionEvent .ACTION_SCROLL );
155+ if (!isPointerEvent || !isMovementEvent ) {
154156 return false ;
155157 }
156158
@@ -181,7 +183,9 @@ private void addPointerForIndex(
181183
182184 int pointerKind = getPointerDeviceTypeForToolType (event .getToolType (pointerIndex ));
183185
184- int signalKind = PointerSignalKind .NONE ;
186+ int signalKind = event .getActionMasked () == MotionEvent .ACTION_SCROLL
187+ ? PointerSignalKind .SCROLL
188+ : PointerSignalKind .NONE ;
185189
186190 long timeStamp = event .getEventTime () * 1000 ; // Convert from milliseconds to microseconds.
187191
@@ -242,8 +246,13 @@ private void addPointerForIndex(
242246
243247 packet .putLong (pointerData ); // platformData
244248
245- packet .putDouble (0.0 ); // scroll_delta_x
246- packet .putDouble (0.0 ); // scroll_delta_y
249+ if (signalKind == PointerSignalKind .SCROLL ) {
250+ packet .putDouble (-event .getAxisValue (MotionEvent .AXIS_HSCROLL )); // scroll_delta_x
251+ packet .putDouble (-event .getAxisValue (MotionEvent .AXIS_VSCROLL )); // scroll_delta_y
252+ } else {
253+ packet .putDouble (0.0 ); // scroll_delta_x
254+ packet .putDouble (0.0 ); // scroll_delta_x
255+ }
247256 }
248257
249258 @ PointerChange
@@ -269,6 +278,9 @@ private int getPointerChangeForAction(int maskedAction) {
269278 if (maskedAction == MotionEvent .ACTION_CANCEL ) {
270279 return PointerChange .CANCEL ;
271280 }
281+ if (maskedAction == MotionEvent .ACTION_SCROLL ) {
282+ return PointerChange .HOVER ;
283+ }
272284 return -1 ;
273285 }
274286
0 commit comments