[PATCH 1/5] HID: magicmouse: scroll on entire surface, not just middle of mouse

Chase Douglas chase.douglas at canonical.com
Thu Jun 24 15:37:26 UTC 2010


Previously, scroll events only occurred when the user moved a touch
along the middle of the touch surface. This is unintuitive for a normal
user who is not aware of this. The device has a uniform surface, so the
distinction is artificial. This change removes the touch area check for
a scroll event, which replicates the OS X behavior.

Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
Acked-by: Michael Poole <mdpoole at troilus.org>
Signed-off-by: Jiri Kosina <jkosina at suse.cz>
(cherry picked from commit ef566d30a702cc9b49d24edc4ad45c62208a4f5d
from git://git.kernel.org/pub/scm/linux/kernel/git/jikos/hid.git)
---
 drivers/hid/hid-magicmouse.c |    5 ++---
 1 files changed, 2 insertions(+), 3 deletions(-)

diff --git a/drivers/hid/hid-magicmouse.c b/drivers/hid/hid-magicmouse.c
index f10d56a..cd70635 100644
--- a/drivers/hid/hid-magicmouse.c
+++ b/drivers/hid/hid-magicmouse.c
@@ -160,10 +160,9 @@ static void magicmouse_emit_touch(struct magicmouse_sc *msc, int raw_id, u8 *tda
 	msc->touches[id].size = misc & 63;
 
 	/* If requested, emulate a scroll wheel by detecting small
-	 * vertical touch motions along the middle of the mouse.
+	 * vertical touch motions.
 	 */
-	if (emulate_scroll_wheel &&
-	    middle_button_start < x && x < middle_button_stop) {
+	if (emulate_scroll_wheel) {
 		static const int accel_profile[] = {
 			256, 228, 192, 160, 128, 96, 64, 32,
 		};
-- 
1.7.0.4





More information about the kernel-team mailing list