From nobody@FreeBSD.org  Thu Jan 31 13:55:56 2008
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34])
	by hub.freebsd.org (Postfix) with ESMTP id 5CB3116A419
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 31 Jan 2008 13:55:56 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (www.freebsd.org [IPv6:2001:4f8:fff6::21])
	by mx1.freebsd.org (Postfix) with ESMTP id 4083F13C442
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 31 Jan 2008 13:55:56 +0000 (UTC)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.14.2/8.14.2) with ESMTP id m0VDs69T068870
	for <freebsd-gnats-submit@FreeBSD.org>; Thu, 31 Jan 2008 13:54:06 GMT
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.14.2/8.14.1/Submit) id m0VDs6PS068869;
	Thu, 31 Jan 2008 13:54:06 GMT
	(envelope-from nobody)
Message-Id: <200801311354.m0VDs6PS068869@www.freebsd.org>
Date: Thu, 31 Jan 2008 13:54:06 GMT
From: Aragon Gouveia <aragon@phat.za.net>
To: freebsd-gnats-submit@FreeBSD.org
Subject: moused improvement to virtual scrolling
X-Send-Pr-Version: www-3.1
X-GNATS-Notify:

>Number:         120186
>Category:       bin
>Synopsis:       [patch] moused(8) improvement to virtual scrolling
>Confidential:   no
>Severity:       non-critical
>Priority:       medium
>Responsible:    philip
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Thu Jan 31 14:00:07 UTC 2008
>Closed-Date:    Thu May 15 15:10:27 UTC 2008
>Last-Modified:  Thu May 15 15:10:27 UTC 2008
>Originator:     Aragon Gouveia
>Release:        FreeBSD 7.0-RC1
>Organization:
>Environment:
FreeBSD geek.pcs.intranet 7.0-RC1 FreeBSD 7.0-RC1 #0: Wed Jan 16 17:07:28 SAST 2008     root@geek.pcs.intranet:/usr/obj/usr/src/sys/GEEK  i386
>Description:
I recently upgraded to FreeBSD 7 and have been thoroughly enjoying the
new moused features like virtual scrolling and exponential acceleration.
One thing that has been annoying me with virtual scrolling though is that
one needs to hold the mouse VERY steady for a middle click to register as
a button click.

I've attached a patch which addresses this issue and also adds a new
argument, -L.  With the current implementation the -U (scroll threshold)
argument affects the speed of scrolling too.  My patch makes -U set only
the scroll threshold, and -L controls the speed of scrolling.

I've tested it briefly on my workstation and middle clicking feels MUCH
more responsive now - day and night difference for me.  I hope I haven't
forgotten anything, but please test it and consider committing this as I
feel it is essential.

Patch attached.


Thanks,
Aragon

>How-To-Repeat:

>Fix:


Patch attached with submission follows:

--- moused.c.orig	2008-01-31 14:29:36.000000000 +0200
+++ moused.c	2008-01-31 15:46:16.000000000 +0200
@@ -77,6 +77,7 @@
 #define DFLT_CLICKTHRESHOLD	 500	/* 0.5 second */
 #define DFLT_BUTTON2TIMEOUT	 100	/* 0.1 second */
 #define DFLT_SCROLLTHRESHOLD	   3	/* 3 pixels */
+#define DFLT_SCROLLSPEED	   2	/* 2 pixels */
 
 /* Abort 3-button emulation delay after this many movement events. */
 #define BUTTON2_MAXMOVE	3
@@ -401,6 +402,7 @@
     float remainx;		/* Remainder on X and Y axis, respectively... */
     float remainy;		/*    ... to compensate for rounding errors. */
     int scrollthreshold;	/* Movement distance before virtual scrolling */
+    int scrollspeed;		/* Movement distance to rate of scrolling */
 } rodent = {
     .flags = 0,
     .portname = NULL,
@@ -424,6 +426,7 @@
     .remainx = 0.0,
     .remainy = 0.0,
     .scrollthreshold = DFLT_SCROLLTHRESHOLD,
+    .scrollspeed = DFLT_SCROLLSPEED,
 };
 
 /* button status */
@@ -554,7 +557,7 @@
     for (i = 0; i < MOUSE_MAXBUTTON; ++i)
 	mstate[i] = &bstate[i];
 
-    while ((c = getopt(argc, argv, "3A:C:DE:F:HI:PRS:T:VU:a:cdfhi:l:m:p:r:st:w:z:")) != -1)
+    while ((c = getopt(argc, argv, "3A:C:DE:F:HI:L:PRS:T:VU:a:cdfhi:l:m:p:r:st:w:z:")) != -1)
 	switch(c) {
 
 	case '3':
@@ -740,6 +743,14 @@
 	    pidfile = optarg;
 	    break;
 
+	case 'L':
+	    rodent.scrollspeed = atoi(optarg);
+	    if (rodent.scrollspeed < 0) {
+		warnx("invalid argument `%s'", optarg);
+		usage();
+	    }
+	    break;
+
 	case 'P':
 	    rodent.flags |= NoPnP;
 	    break;
@@ -1100,6 +1111,7 @@
 		if (action0.button == MOUSE_BUTTON2DOWN) {
 		    if (scroll_state == SCROLL_NOTSCROLLING) {
 			scroll_state = SCROLL_PREPARE;
+			scroll_movement = hscroll_movement = 0;
 			debug("PREPARING TO SCROLL");
 		    }
 		    debug("[BUTTON2] flags:%08x buttons:%08x obuttons:%08x",
@@ -1161,21 +1173,38 @@
 		 * the stick/trackpoint/nipple, scroll!
 		 */
 		if (scroll_state == SCROLL_PREPARE) {
-		    /* Ok, Set we're really scrolling now.... */
-		    if (action2.dy || action2.dx)
-			scroll_state = SCROLL_SCROLLING;
+			/* Middle button down, waiting for movement threshold */
+			if (action2.dy || action2.dx) {
+				if (rodent.flags & VirtualScroll) {
+					scroll_movement += action2.dy;
+					if (scroll_movement < -rodent.scrollthreshold) {
+						scroll_state = SCROLL_SCROLLING;
+					} else if (scroll_movement > rodent.scrollthreshold) {
+						scroll_state = SCROLL_SCROLLING;
+					}
+				}
+				if (rodent.flags & HVirtualScroll) {
+					hscroll_movement += action2.dx;
+					if (hscroll_movement < -rodent.scrollthreshold) {
+						scroll_state = SCROLL_SCROLLING;
+					} else if (hscroll_movement > rodent.scrollthreshold) {
+						scroll_state = SCROLL_SCROLLING;
+					}
+				}
+				if (scroll_state == SCROLL_SCROLLING) scroll_movement = hscroll_movement = 0;
+			}
 		}
 		if (scroll_state == SCROLL_SCROLLING) {
 			 if (rodent.flags & VirtualScroll) {
 				 scroll_movement += action2.dy;
 				 debug("SCROLL: %d", scroll_movement);
 
-			    if (scroll_movement < -rodent.scrollthreshold) { 
+			    if (scroll_movement < -rodent.scrollspeed) { 
 				/* Scroll down */
 				action2.dz = -1;
 				scroll_movement = 0;
 			    }
-			    else if (scroll_movement > rodent.scrollthreshold) { 
+			    else if (scroll_movement > rodent.scrollspeed) { 
 				/* Scroll up */
 				action2.dz = 1;
 				scroll_movement = 0;
@@ -1185,11 +1214,11 @@
 				 hscroll_movement += action2.dx;
 				 debug("HORIZONTAL SCROLL: %d", hscroll_movement);
 
-				 if (hscroll_movement < -rodent.scrollthreshold) {
+				 if (hscroll_movement < -rodent.scrollspeed) {
 					 action2.dz = -2;
 					 hscroll_movement = 0;
 				 }
-				 else if (hscroll_movement > rodent.scrollthreshold) {
+				 else if (hscroll_movement > rodent.scrollspeed) {
 					 action2.dz = 2;
 					 hscroll_movement = 0;
 				 }


>Release-Note:
>Audit-Trail:

From: Aragon Gouveia <aragon@phat.za.net>
To: bug-followup@FreeBSD.org, aragon@phat.za.net
Cc:  
Subject: Re: bin/120186: [patch] moused(8) improvement to virtual scrolling
Date: Fri, 1 Feb 2008 11:32:54 +0200

 Hi,
 
 I've spotted a tiny annoyance with my patch.  Below is a further update that
 fixes it. :)
 
 
 Thanks,
 Aragon
 
 
 --- moused.c.orig2	2008-02-01 11:30:31.000000000 +0200
 +++ moused.c	2008-02-01 11:30:12.000000000 +0200
 @@ -1193,8 +1193,7 @@
  				}
  				if (scroll_state == SCROLL_SCROLLING)
 scroll_movement = hscroll_movement = 0;
  			}
 -		}
 -		if (scroll_state == SCROLL_SCROLLING) {
 +		} else if (scroll_state == SCROLL_SCROLLING) {
  			 if (rodent.flags & VirtualScroll) {
  				 scroll_movement += action2.dy;
  				 debug("SCROLL: %d", scroll_movement);
Responsible-Changed-From-To: freebsd-bugs->philip 
Responsible-Changed-By: matteo 
Responsible-Changed-When: Lun 4 Feb 2008 07:59:13 UTC 
Responsible-Changed-Why:  
philip may be interested in this PR. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=120186 

From: Aragon Gouveia <aragon@phat.za.net>
To: bug-followup@FreeBSD.org, aragon@phat.za.net
Cc:  
Subject: Re: bin/120186: [patch] moused(8) improvement to virtual scrolling
Date: Thu, 7 Feb 2008 18:26:13 +0200

 --PEIAKu/WMn1b1Hv9
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 Hi,
 
 I updated the man page today for argument -L.  Diff attached.
 
 
 Thanks,
 Aragon
 
 --PEIAKu/WMn1b1Hv9
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: attachment; filename="moused-Largument-man.txt"
 
 --- moused.8.orig	2008-02-07 18:22:40.000000000 +0200
 +++ moused.8	2008-02-07 18:21:49.000000000 +0200
 @@ -43,7 +43,7 @@
  .Op Fl F Ar rate
  .Op Fl r Ar resolution
  .Op Fl S Ar baudrate
 -.Op Fl VH Op Fl U Ar distance
 +.Op Fl VH Op Fl U Ar distance Fl L Ar distance
  .Op Fl A Ar exp Ns Op , Ns Ar offset
  .Op Fl a Ar X Ns Op , Ns Ar Y
  .Op Fl C Ar threshold
 @@ -139,6 +139,18 @@
  The default timeout is 100 msec.
  .It Fl F Ar rate
  Set the report rate (reports/sec) of the device if supported.
 +.It Fl L Ar distance
 +When
 +.Dq Virtual Scrolling
 +is enabled, the
 +.Fl L
 +option can be used to set the
 +.Ar distance
 +(in pixels) that the mouse must move before a scroll event
 +is generated.  This effectively controls the scrolling speed.
 +The default
 +.Ar distance
 +is 2 pixels.
  .It Fl H
  Enable
  .Dq Horizontal Virtual Scrolling .
 @@ -148,7 +160,9 @@
  Use the
  .Fl U
  option to set the distance the mouse must move before the scrolling mode is
 -activated.
 +activated and the
 +.Fl L
 +option to set the scrolling speed.
  This option may be used with or without the
  .Fl V
  option.
 @@ -201,7 +215,9 @@
  Use the
  .Fl U
  option to set the distance the mouse must move before the scrolling mode is
 -activated.
 +activated and the
 +.Fl L
 +option to set the scrolling speed.
  .It Fl U Ar distance
  When
  .Dq Virtual Scrolling
 
 --PEIAKu/WMn1b1Hv9--

From: Aragon Gouveia <aragon@phat.za.net>
To: bug-followup@FreeBSD.org, aragon@phat.za.net
Cc:  
Subject: Re: bin/120186: [patch] moused(8) improvement to virtual scrolling
Date: Fri, 4 Apr 2008 01:38:34 +0200

 bump
 
 anyone had a look at this?

From: Aragon Gouveia <aragon@phat.za.net>
To: bug-followup@FreeBSD.org, aragon@phat.za.net
Cc:  
Subject: Re: bin/120186: [patch] moused(8) improvement to virtual scrolling
Date: Thu, 24 Apr 2008 14:47:40 +0200

 bump
 
 just a friendly reminder...

From: Aragon Gouveia <aragon@phat.za.net>
To: bug-followup@FreeBSD.org, aragon@phat.za.net
Cc:  
Subject: Re: bin/120186: [patch] moused(8) improvement to virtual scrolling
Date: Sun, 11 May 2008 18:59:55 +0200

 --lrZ03NoBR/3+SXJZ
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 Hi,
 
 I noticed there have been some moused commits that were MFC'd to RELENG_7
 recently.  The new moused breaks my patch.  I've attached a revised patch
 that applies cleanly to RELENG_7's moused as of this writing.
 
 This really ought to be committed.  Can't understand how anyone can live
 without it. :)
 
 
 Regards,
 Aragon
 
 --lrZ03NoBR/3+SXJZ
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: attachment; filename="moused-vscrollfix.patch"
 
 --- moused.c.orig	2008-05-11 08:04:23.000000000 +0200
 +++ moused.c	2008-05-11 08:11:37.000000000 +0200
 @@ -78,6 +78,7 @@
  #define DFLT_CLICKTHRESHOLD	 500	/* 0.5 second */
  #define DFLT_BUTTON2TIMEOUT	 100	/* 0.1 second */
  #define DFLT_SCROLLTHRESHOLD	   3	/* 3 pixels */
 +#define DFLT_SCROLLSPEED	   2	/* 2 pixels */
  
  /* Abort 3-button emulation delay after this many movement events. */
  #define BUTTON2_MAXMOVE	3
 @@ -418,6 +419,7 @@
      float remainx;		/* Remainder on X and Y axis, respectively... */
      float remainy;		/*    ... to compensate for rounding errors. */
      int scrollthreshold;	/* Movement distance before virtual scrolling */
 +    int scrollspeed;		/* Movement distance to rate of scrolling */
  } rodent = {
      .flags = 0,
      .portname = NULL,
 @@ -441,6 +443,7 @@
      .remainx = 0.0,
      .remainy = 0.0,
      .scrollthreshold = DFLT_SCROLLTHRESHOLD,
 +    .scrollspeed = DFLT_SCROLLSPEED,
  };
  
  /* button status */
 @@ -574,7 +577,7 @@
      for (i = 0; i < MOUSE_MAXBUTTON; ++i)
  	mstate[i] = &bstate[i];
  
 -    while ((c = getopt(argc, argv, "3A:C:DE:F:HI:PRS:T:VU:a:cdfhi:l:m:p:r:st:w:z:")) != -1)
 +    while ((c = getopt(argc, argv, "3A:C:DE:F:HI:L:PRS:T:VU:a:cdfhi:l:m:p:r:st:w:z:")) != -1)
  	switch(c) {
  
  	case '3':
 @@ -760,6 +763,14 @@
  	    pidfile = optarg;
  	    break;
  
 +	case 'L':
 +	    rodent.scrollspeed = atoi(optarg);
 +	    if (rodent.scrollspeed < 0) {
 +		warnx("invalid argument `%s'", optarg);
 +		usage();
 +	    }
 +	    break;
 +
  	case 'P':
  	    rodent.flags |= NoPnP;
  	    break;
 @@ -1121,6 +1132,7 @@
  		if (action0.button == MOUSE_BUTTON2DOWN) {
  		    if (scroll_state == SCROLL_NOTSCROLLING) {
  			scroll_state = SCROLL_PREPARE;
 +			scroll_movement = hscroll_movement = 0;
  			debug("PREPARING TO SCROLL");
  		    }
  		    debug("[BUTTON2] flags:%08x buttons:%08x obuttons:%08x",
 @@ -1182,20 +1194,36 @@
  		 * the stick/trackpoint/nipple, scroll!
  		 */
  		if (scroll_state == SCROLL_PREPARE) {
 -		    /* Ok, Set we're really scrolling now.... */
 -		    if (action2.dy || action2.dx)
 -			scroll_state = SCROLL_SCROLLING;
 -		}
 -		if (scroll_state == SCROLL_SCROLLING) {
 +			/* Middle button down, waiting for movement threshold */
 +			if (action2.dy || action2.dx) {
 +				if (rodent.flags & VirtualScroll) {
 +					scroll_movement += action2.dy;
 +					if (scroll_movement < -rodent.scrollthreshold) {
 +						scroll_state = SCROLL_SCROLLING;
 +					} else if (scroll_movement > rodent.scrollthreshold) {
 +						scroll_state = SCROLL_SCROLLING;
 +					}
 +				}
 +				if (rodent.flags & HVirtualScroll) {
 +					hscroll_movement += action2.dx;
 +					if (hscroll_movement < -rodent.scrollthreshold) {
 +						scroll_state = SCROLL_SCROLLING;
 +					} else if (hscroll_movement > rodent.scrollthreshold) {
 +						scroll_state = SCROLL_SCROLLING;
 +					}
 +				}
 +				if (scroll_state == SCROLL_SCROLLING) scroll_movement = hscroll_movement = 0;
 +			}
 +		} else if (scroll_state == SCROLL_SCROLLING) {
  			 if (rodent.flags & VirtualScroll) {
  				 scroll_movement += action2.dy;
  				 debug("SCROLL: %d", scroll_movement);
 -			    if (scroll_movement < -rodent.scrollthreshold) {
 +			    if (scroll_movement < -rodent.scrollspeed) {
  				/* Scroll down */
  				action2.dz = -1;
  				scroll_movement = 0;
  			    }
 -			    else if (scroll_movement > rodent.scrollthreshold) {
 +			    else if (scroll_movement > rodent.scrollspeed) {
  				/* Scroll up */
  				action2.dz = 1;
  				scroll_movement = 0;
 @@ -1205,11 +1233,11 @@
  				 hscroll_movement += action2.dx;
  				 debug("HORIZONTAL SCROLL: %d", hscroll_movement);
  
 -				 if (hscroll_movement < -rodent.scrollthreshold) {
 +				 if (hscroll_movement < -rodent.scrollspeed) {
  					 action2.dz = -2;
  					 hscroll_movement = 0;
  				 }
 -				 else if (hscroll_movement > rodent.scrollthreshold) {
 +				 else if (hscroll_movement > rodent.scrollspeed) {
  					 action2.dz = 2;
  					 hscroll_movement = 0;
  				 }
 
 --lrZ03NoBR/3+SXJZ--

From: Aragon Gouveia <aragon@phat.za.net>
To: bug-followup@FreeBSD.org, aragon@phat.za.net
Cc:  
Subject: Re: bin/120186: [patch] moused(8) improvement to virtual scrolling
Date: Sun, 11 May 2008 19:06:33 +0200

 --ZPt4rx8FFjLCG7dd
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 
 Sorry about that.  Let's try again without letting my attachment thrown
 inline...
 
 --ZPt4rx8FFjLCG7dd
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: attachment; filename="moused-vscrollfix.txt"
 
 --- moused.c.orig	2008-05-11 08:04:23.000000000 +0200
 +++ moused.c	2008-05-11 08:11:37.000000000 +0200
 @@ -78,6 +78,7 @@
  #define DFLT_CLICKTHRESHOLD	 500	/* 0.5 second */
  #define DFLT_BUTTON2TIMEOUT	 100	/* 0.1 second */
  #define DFLT_SCROLLTHRESHOLD	   3	/* 3 pixels */
 +#define DFLT_SCROLLSPEED	   2	/* 2 pixels */
  
  /* Abort 3-button emulation delay after this many movement events. */
  #define BUTTON2_MAXMOVE	3
 @@ -418,6 +419,7 @@
      float remainx;		/* Remainder on X and Y axis, respectively... */
      float remainy;		/*    ... to compensate for rounding errors. */
      int scrollthreshold;	/* Movement distance before virtual scrolling */
 +    int scrollspeed;		/* Movement distance to rate of scrolling */
  } rodent = {
      .flags = 0,
      .portname = NULL,
 @@ -441,6 +443,7 @@
      .remainx = 0.0,
      .remainy = 0.0,
      .scrollthreshold = DFLT_SCROLLTHRESHOLD,
 +    .scrollspeed = DFLT_SCROLLSPEED,
  };
  
  /* button status */
 @@ -574,7 +577,7 @@
      for (i = 0; i < MOUSE_MAXBUTTON; ++i)
  	mstate[i] = &bstate[i];
  
 -    while ((c = getopt(argc, argv, "3A:C:DE:F:HI:PRS:T:VU:a:cdfhi:l:m:p:r:st:w:z:")) != -1)
 +    while ((c = getopt(argc, argv, "3A:C:DE:F:HI:L:PRS:T:VU:a:cdfhi:l:m:p:r:st:w:z:")) != -1)
  	switch(c) {
  
  	case '3':
 @@ -760,6 +763,14 @@
  	    pidfile = optarg;
  	    break;
  
 +	case 'L':
 +	    rodent.scrollspeed = atoi(optarg);
 +	    if (rodent.scrollspeed < 0) {
 +		warnx("invalid argument `%s'", optarg);
 +		usage();
 +	    }
 +	    break;
 +
  	case 'P':
  	    rodent.flags |= NoPnP;
  	    break;
 @@ -1121,6 +1132,7 @@
  		if (action0.button == MOUSE_BUTTON2DOWN) {
  		    if (scroll_state == SCROLL_NOTSCROLLING) {
  			scroll_state = SCROLL_PREPARE;
 +			scroll_movement = hscroll_movement = 0;
  			debug("PREPARING TO SCROLL");
  		    }
  		    debug("[BUTTON2] flags:%08x buttons:%08x obuttons:%08x",
 @@ -1182,20 +1194,36 @@
  		 * the stick/trackpoint/nipple, scroll!
  		 */
  		if (scroll_state == SCROLL_PREPARE) {
 -		    /* Ok, Set we're really scrolling now.... */
 -		    if (action2.dy || action2.dx)
 -			scroll_state = SCROLL_SCROLLING;
 -		}
 -		if (scroll_state == SCROLL_SCROLLING) {
 +			/* Middle button down, waiting for movement threshold */
 +			if (action2.dy || action2.dx) {
 +				if (rodent.flags & VirtualScroll) {
 +					scroll_movement += action2.dy;
 +					if (scroll_movement < -rodent.scrollthreshold) {
 +						scroll_state = SCROLL_SCROLLING;
 +					} else if (scroll_movement > rodent.scrollthreshold) {
 +						scroll_state = SCROLL_SCROLLING;
 +					}
 +				}
 +				if (rodent.flags & HVirtualScroll) {
 +					hscroll_movement += action2.dx;
 +					if (hscroll_movement < -rodent.scrollthreshold) {
 +						scroll_state = SCROLL_SCROLLING;
 +					} else if (hscroll_movement > rodent.scrollthreshold) {
 +						scroll_state = SCROLL_SCROLLING;
 +					}
 +				}
 +				if (scroll_state == SCROLL_SCROLLING) scroll_movement = hscroll_movement = 0;
 +			}
 +		} else if (scroll_state == SCROLL_SCROLLING) {
  			 if (rodent.flags & VirtualScroll) {
  				 scroll_movement += action2.dy;
  				 debug("SCROLL: %d", scroll_movement);
 -			    if (scroll_movement < -rodent.scrollthreshold) {
 +			    if (scroll_movement < -rodent.scrollspeed) {
  				/* Scroll down */
  				action2.dz = -1;
  				scroll_movement = 0;
  			    }
 -			    else if (scroll_movement > rodent.scrollthreshold) {
 +			    else if (scroll_movement > rodent.scrollspeed) {
  				/* Scroll up */
  				action2.dz = 1;
  				scroll_movement = 0;
 @@ -1205,11 +1233,11 @@
  				 hscroll_movement += action2.dx;
  				 debug("HORIZONTAL SCROLL: %d", hscroll_movement);
  
 -				 if (hscroll_movement < -rodent.scrollthreshold) {
 +				 if (hscroll_movement < -rodent.scrollspeed) {
  					 action2.dz = -2;
  					 hscroll_movement = 0;
  				 }
 -				 else if (hscroll_movement > rodent.scrollthreshold) {
 +				 else if (hscroll_movement > rodent.scrollspeed) {
  					 action2.dz = 2;
  					 hscroll_movement = 0;
  				 }
 
 --ZPt4rx8FFjLCG7dd--

From: dfilter@FreeBSD.ORG (dfilter service)
To: bug-followup@FreeBSD.org
Cc:  
Subject: Re: bin/120186: commit references a PR
Date: Thu, 15 May 2008 15:05:11 +0000 (UTC)

 philip      2008-05-15 15:05:02 UTC
 
   FreeBSD src repository
 
   Modified files:
     usr.sbin/moused      moused.8 moused.c 
   Log:
   Improve the virtual scrolling mechanism to make middle clicking less
   difficult.  Add a -L option (yet another option, indeed!) which changes the
   speed of scrolling and change -U to only affect the scroll threshold.
   
   This should make middle-clicking a much more pleasant experience.
   
   PR:             bin/120186
   Submitted by:   Aragon Gouveia <aragon -at- phat.za.net>
   MFC after:      3 days
   
   Revision  Changes    Path
   1.62      +20 -4     src/usr.sbin/moused/moused.8
   1.84      +38 -11    src/usr.sbin/moused/moused.c
 _______________________________________________
 cvs-all@freebsd.org mailing list
 http://lists.freebsd.org/mailman/listinfo/cvs-all
 To unsubscribe, send any mail to "cvs-all-unsubscribe@freebsd.org"
 
State-Changed-From-To: open->closed 
State-Changed-By: philip 
State-Changed-When: Thu May 15 15:10:26 UTC 2008 
State-Changed-Why:  
Committed. Thanks! 

http://www.freebsd.org/cgi/query-pr.cgi?pr=120186 
>Unformatted:
