From owner-FreeBSD-tech-jp@jp.freebsd.org  Sun Apr  2 16:20:21 2000
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id QAA63777;
	Sun, 2 Apr 2000 16:20:21 +0900 (JST)
	(envelope-from owner-FreeBSD-tech-jp@jp.FreeBSD.org)
Received: from outmail.utsunomiya-u.ac.jp (outmail.utsunomiya-u.ac.jp [160.12.196.3])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id QAA63772
	for <freebsd-tech-jp@jp.freebsd.org>; Sun, 2 Apr 2000 16:20:21 +0900 (JST)
	(envelope-from yokota@zodiac.mech.utsunomiya-u.ac.jp)
Received: from zodiac.mech.utsunomiya-u.ac.jp (IDENT:1df03FMMe5L10ogcT62ZlXpo5FkweT5p@zodiac.mech.utsunomiya-u.ac.jp [160.12.42.1])
	by outmail.utsunomiya-u.ac.jp (8.9.3/3.7Wpl2) with ESMTP id QAA22150
	for <freebsd-tech-jp@jp.freebsd.org>; Sun, 2 Apr 2000 16:20:16 +0900 (JST)
Received: from zodiac.mech.utsunomiya-u.ac.jp (zodiac.mech.utsunomiya-u.ac.jp [160.12.42.1]) by zodiac.mech.utsunomiya-u.ac.jp (8.7.6+2.6Wbeta7/3.4W/zodiac-May96) with ESMTP
	id QAA04936; Sun, 2 Apr 2000 16:26:40 +0900 (JST)
Message-Id: <200004020726.QAA04936@zodiac.mech.utsunomiya-u.ac.jp>
To: FreeBSD-tech-jp@jp.freebsd.org
cc: yokota@zodiac.mech.utsunomiya-u.ac.jp
In-reply-to: Your message of "Thu, 23 Mar 2000 15:32:47 JST."
             <86wvmuci28.wl@waterblue.imgsrc.co.jp> 
References: <86wvmuci28.wl@waterblue.imgsrc.co.jp> 
Date: Sun, 02 Apr 2000 16:26:39 +0900
From: Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp>
Reply-To: FreeBSD-tech-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+000315
X-Sequence: FreeBSD-tech-jp 2740
Subject: [FreeBSD-tech-jp 2740] Re: mouse slowed down with -3 option 
Errors-To: owner-FreeBSD-tech-jp@jp.freebsd.org
Sender: owner-FreeBSD-tech-jp@jp.freebsd.org
X-Originator: yokota@zodiac.mech.utsunomiya-u.ac.jp

$@2#ED!w1'ET5\$G$9!#(J

>$@!!0l:rF|$/$i$$$K(J installworld $@$7$?8e$+$i$@$H;W$&$N$G$9$,!"$I$&$b%^%&%9$N(J
>$@%\%?%s$NH?1~$,F_$$$h$&$G$9!#%/%j%C%/$7$F$bN%$7$?$3$H$,EA$o$k$N$,CY$$46$8!#(J
>
>$@!!(Jmoused -d -f -3 -p /dev/psm0 -t auto $@$GD4$Y$F$_$k$H!"%/%j%C%/$7$?$H$-(J
>$@$K(J mstate[0] $@$O$9$0$K(J 1 $@$K$J$k$N$G$9$,!"(Jmstate[0] $@$,(J 0 $@$KLa$k$N$K(J 0.3 $@$+(J
>$@$i(J 0.5 $@IC$/$i$$$+$+$C$F$k!#(J
>$@!!2!$7$?$^$^$K$7$F$7$P$i$/$7$F$+$iN%$9$H!"N%$7$?D>8e$K(J mstate[0] $@$O(J 0 $@$K(J
>$@$J$j$^$9!#(J
>
>$@!!(J-3 $@$r$O$:$7$?$i2~A1$5$l$^$9(J($@$,$J$s$H$J$/$A$g$C$HH?1~CY$$$+$b!"$H$$$&5$(J
>$@$b$9$k(J)$@!#(J
>
>-- 
>Jun Kuriyama <kuriyama@FreeBSD.org> // FreeBSD Project

$@0J2<$N%Q%C%A$r$*;n$72<$5$$!#(J-E $@%*%W%7%g%s$r;H$C$FD4@0$7$J$/$F$b(J
$@%\%?%s$rN%$7$?$i$9$0$K(J mstate[0] $@$KLa$k!$$O$:!$$G$9!#(J

Index: moused.c
===================================================================
RCS file: /src/CVS/src/usr.sbin/moused/moused.c,v
retrieving revision 1.42
diff -u -r1.42 moused.c
--- moused.c	2000/03/31 12:35:33	1.42
+++ moused.c	2000/04/02 06:06:15
@@ -431,27 +431,28 @@
     int s[A_TIMEOUT + 1];
     int buttons;
     int mask;
+    int timeout;
 } states[10] = {
     /* S0 */
-    { { S0, S2, S1, S3, S0 }, 0, ~(MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN) },
+    { { S0, S2, S1, S3, S0 }, 0, ~(MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN), FALSE },
     /* S1 */
-    { { S4, S2, S1, S3, S5 }, 0, ~MOUSE_BUTTON1DOWN },
+    { { S4, S2, S1, S3, S5 }, 0, ~MOUSE_BUTTON1DOWN, FALSE },
     /* S2 */
-    { { S8, S2, S1, S3, S6 }, 0, ~MOUSE_BUTTON3DOWN },
+    { { S8, S2, S1, S3, S6 }, 0, ~MOUSE_BUTTON3DOWN, FALSE },
     /* S3 */
-    { { S0, S9, S9, S3, S3 }, MOUSE_BUTTON2DOWN, ~0 },
+    { { S0, S9, S9, S3, S3 }, MOUSE_BUTTON2DOWN, ~0, FALSE },
     /* S4 */
-    { { S0, S2, S1, S3, S0 }, MOUSE_BUTTON1DOWN, ~0 },
+    { { S0, S2, S1, S3, S0 }, MOUSE_BUTTON1DOWN, ~0, TRUE },
     /* S5 */
-    { { S0, S2, S5, S7, S5 }, MOUSE_BUTTON1DOWN, ~0 },
+    { { S0, S2, S5, S7, S5 }, MOUSE_BUTTON1DOWN, ~0, FALSE },
     /* S6 */
-    { { S0, S6, S1, S7, S6 }, MOUSE_BUTTON3DOWN, ~0 },
+    { { S0, S6, S1, S7, S6 }, MOUSE_BUTTON3DOWN, ~0, FALSE },
     /* S7 */
-    { { S0, S6, S5, S7, S7 }, MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN, ~0 },
+    { { S0, S6, S5, S7, S7 }, MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN, ~0, FALSE },
     /* S8 */
-    { { S0, S2, S1, S3, S0 }, MOUSE_BUTTON3DOWN, ~0 },
+    { { S0, S2, S1, S3, S0 }, MOUSE_BUTTON3DOWN, ~0, TRUE },
     /* S9 */
-    { { S0, S9, S9, S3, S9 }, 0, ~(MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN) },
+    { { S0, S9, S9, S3, S9 }, 0, ~(MOUSE_BUTTON1DOWN | MOUSE_BUTTON3DOWN), FALSE },
 };
 static int		mouse_button_state;
 static struct timeval	mouse_button_state_tv;
@@ -2167,6 +2168,8 @@
     struct timeval tv1;
     struct timeval tv2;
 
+    if (states[mouse_button_state].timeout)
+	return TRUE;
     gettimeofday(&tv1, NULL);
     tv2.tv_sec = rodent.button2timeout/1000;
     tv2.tv_usec = (rodent.button2timeout%1000)*1000;
