Re: Fix sudden warps in mousedev

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Dmitry Torokhov
Date: Sunday, March 25, 2007 - 8:19 pm

On Sunday 25 March 2007 14:19, Pete Zaitcev wrote:

Riiight... Of course you are right...

I tried to reproduce warping on console but could not for some reason. Could you
please try the patch below and tell me if it fixes the problem for you?

-- 
Dmitry

Signed-off-by: Dmitry Torokhov <dtor@mail.ru>
---

 drivers/input/mousedev.c |   51 +++++++++++++++++++++++------------------------
 1 files changed, 26 insertions(+), 25 deletions(-)

Index: work/drivers/input/mousedev.c
===================================================================
--- work.orig/drivers/input/mousedev.c
+++ work/drivers/input/mousedev.c
@@ -124,32 +124,33 @@ static void mousedev_touchpad_event(stru
 	int size, tmp;
 	enum { FRACTION_DENOM = 128 };
 
-	if (mousedev->touch) {
-		size = dev->absmax[ABS_X] - dev->absmin[ABS_X];
-		if (size == 0)
-			size = 256 * 2;
-
-		switch (code) {
-			case ABS_X:
-				fx(0) = value;
-				if (mousedev->pkt_count >= 2) {
-					tmp = ((value - fx(2)) * (256 * FRACTION_DENOM)) / size;
-					tmp += mousedev->frac_dx;
-					mousedev->packet.dx = tmp / FRACTION_DENOM;
-					mousedev->frac_dx = tmp - mousedev->packet.dx * FRACTION_DENOM;
-				}
-				break;
+	switch (code) {
+		case ABS_X:
+			fx(0) = value;
+			if (mousedev->touch && mousedev->pkt_count >= 2) {
+				size = dev->absmax[ABS_X] - dev->absmin[ABS_X];
+				if (size == 0)
+					size = 256 * 2;
+				tmp = ((value - fx(2)) * (256 * FRACTION_DENOM)) / size;
+				tmp += mousedev->frac_dx;
+				mousedev->packet.dx = tmp / FRACTION_DENOM;
+				mousedev->frac_dx = tmp - mousedev->packet.dx * FRACTION_DENOM;
+			}
+			break;
 
-			case ABS_Y:
-				fy(0) = value;
-				if (mousedev->pkt_count >= 2) {
-					tmp = -((value - fy(2)) * (256 * FRACTION_DENOM)) / size;
-					tmp += mousedev->frac_dy;
-					mousedev->packet.dy = tmp / FRACTION_DENOM;
-					mousedev->frac_dy = tmp - mousedev->packet.dy * FRACTION_DENOM;
-				}
-				break;
-		}
+		case ABS_Y:
+			fy(0) = value;
+			if (mousedev->touch && mousedev->pkt_count >= 2) {
+				/* use X size to keep the same scale */
+				size = dev->absmax[ABS_X] - dev->absmin[ABS_X];
+				if (size == 0)
+					size = 256 * 2;
+				tmp = -((value - fy(2)) * (256 * FRACTION_DENOM)) / size;
+				tmp += mousedev->frac_dy;
+				mousedev->packet.dy = tmp / FRACTION_DENOM;
+				mousedev->frac_dy = tmp - mousedev->packet.dy * FRACTION_DENOM;
+			}
+			break;
 	}
 }
 
-
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: Fix sudden warps in mousedev, Pete Zaitcev, (Sun Mar 25, 11:19 am)
Re: Fix sudden warps in mousedev, Dmitry Torokhov, (Sun Mar 25, 8:19 pm)
Re: Fix sudden warps in mousedev, Pete Zaitcev, (Mon Mar 26, 12:17 pm)
Re: Fix sudden warps in mousedev, Dmitry Torokhov, (Mon Mar 26, 12:30 pm)
Re: Fix sudden warps in mousedev, Pete Zaitcev, (Mon Mar 26, 2:42 pm)
Re: Fix sudden warps in mousedev, Dmitry Torokhov, (Mon Mar 26, 6:14 pm)
Re: Fix sudden warps in mousedev, Chuck Ebbert, (Tue Mar 27, 8:14 am)
Re: Fix sudden warps in mousedev, Dmitry Torokhov, (Tue Mar 27, 8:46 am)
Re: Fix sudden warps in mousedev, Chuck Ebbert, (Tue Mar 27, 9:04 am)
Re: Fix sudden warps in mousedev, Dmitry Torokhov, (Tue Mar 27, 9:19 am)
Re: Fix sudden warps in mousedev, Matt Keenan, (Wed Mar 28, 1:51 pm)
Re: Fix sudden warps in mousedev, Peter Osterlund, (Wed Apr 11, 2:51 pm)