From 9c5da6de539a9ee8489b7cda5f52d1d85080b6f0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Samuel=20Rodr=C3=ADguez=20P=C3=A9rez?= Date: Fri, 14 Nov 2025 10:35:56 +0000 Subject: [PATCH] input mouse: Only save last valid processed movements Only store the last valid touchpad movement checking status result. Prevously, invalid data provided by drivers and wrongly processed by userspace movement maker functionality such are uninitilised or other kind of garbage data could end up being stored as legit resulting on many unintended misbehaviours. Change-Id: If5888341d53405810bc7295d4fffa1f00c9482fe Reviewed-on: https://review.haiku-os.org/c/haiku/+/9904 Reviewed-by: waddlesplash Tested-by: Commit checker robot Reviewed-by: nephele nephele --- src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp b/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp index aed2b620d6..41f4dcb098 100644 --- a/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp +++ b/src/add-ons/input_server/devices/mouse/MouseInputDevice.cpp @@ -450,9 +450,10 @@ MouseDevice::_ControlThread() } if (read.event == MS_READ_TOUCHPAD) { - lastTouchpadMovement = read.u.touchpad; status = fTouchpadMovementMaker.EventToMovement(&read.u.touchpad, &movements, touchpadEventTimeout); + if (status == B_OK) + lastTouchpadMovement = read.u.touchpad; } else if (read.event == MS_READ) { movements = read.u.mouse; touchpadEventTimeout = -1;