⛏️ index : haiku.git

author Samuel Rodríguez Pérez <samuelgaliza@gmail.com> 2025-11-14 10:35:56.0 +00:00:00
committer waddlesplash <waddlesplash@gmail.com> 2025-11-24 18:21:26.0 +00:00:00
commit
9c5da6de539a9ee8489b7cda5f52d1d85080b6f0 [patch]
tree
28207d58863ae9a9d20c2f6e5be5bc9d36aaa67c
parent
ceb063d041bdb014a3d07b44eadf2ee389deb797
download
9c5da6de539a9ee8489b7cda5f52d1d85080b6f0.tar.gz

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 <waddlesplash@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: nephele nephele <nep-git@packageloss.eu>

Diff

 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 aed2b62..41f4dcb 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 @@
			}

			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;