mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-30 00:23:21 +00:00 
			
		
		
		
	Merge pull request #209 from glyptodon/flangelo-mouse-scroll
GUAC-1244: Ensure small scroll events are handled
This commit is contained in:
		| @@ -49,17 +49,17 @@ Guacamole.Mouse = function(element) { | |||||||
|      * The minimum amount of pixels scrolled required for a single scroll button |      * The minimum amount of pixels scrolled required for a single scroll button | ||||||
|      * click. |      * click. | ||||||
|      */ |      */ | ||||||
|     this.scrollThreshold = 120; |     this.scrollThreshold = 53; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * The number of pixels to scroll per line. |      * The number of pixels to scroll per line. | ||||||
|      */ |      */ | ||||||
|     this.PIXELS_PER_LINE = 40; |     this.PIXELS_PER_LINE = 18; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * The number of pixels to scroll per page. |      * The number of pixels to scroll per page. | ||||||
|      */ |      */ | ||||||
|     this.PIXELS_PER_PAGE = 640; |     this.PIXELS_PER_PAGE = this.PIXELS_PER_LINE * 16; | ||||||
|  |  | ||||||
|     /** |     /** | ||||||
|      * The current mouse state. The properties of this state are updated when |      * The current mouse state. The properties of this state are updated when | ||||||
| @@ -274,36 +274,52 @@ Guacamole.Mouse = function(element) { | |||||||
|         scroll_delta += delta; |         scroll_delta += delta; | ||||||
|  |  | ||||||
|         // Up |         // Up | ||||||
|         while (scroll_delta <= -guac_mouse.scrollThreshold) { |         if (scroll_delta <= -guac_mouse.scrollThreshold) { | ||||||
|  |  | ||||||
|             if (guac_mouse.onmousedown) { |             // Repeatedly click the up button until insufficient delta remains | ||||||
|                 guac_mouse.currentState.up = true; |             do { | ||||||
|                 guac_mouse.onmousedown(guac_mouse.currentState); |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|             if (guac_mouse.onmouseup) { |                 if (guac_mouse.onmousedown) { | ||||||
|                 guac_mouse.currentState.up = false; |                     guac_mouse.currentState.up = true; | ||||||
|                 guac_mouse.onmouseup(guac_mouse.currentState); |                     guac_mouse.onmousedown(guac_mouse.currentState); | ||||||
|             } |                 } | ||||||
|  |  | ||||||
|             scroll_delta += guac_mouse.scrollThreshold; |                 if (guac_mouse.onmouseup) { | ||||||
|  |                     guac_mouse.currentState.up = false; | ||||||
|  |                     guac_mouse.onmouseup(guac_mouse.currentState); | ||||||
|  |                 } | ||||||
|  |  | ||||||
|  |                 scroll_delta += guac_mouse.scrollThreshold; | ||||||
|  |  | ||||||
|  |             } while (scroll_delta <= -guac_mouse.scrollThreshold); | ||||||
|  |  | ||||||
|  |             // Reset delta | ||||||
|  |             scroll_delta = 0; | ||||||
|  |  | ||||||
|         } |         } | ||||||
|  |  | ||||||
|         // Down |         // Down | ||||||
|         while (scroll_delta >= guac_mouse.scrollThreshold) { |         if (scroll_delta >= guac_mouse.scrollThreshold) { | ||||||
|  |  | ||||||
|             if (guac_mouse.onmousedown) { |             // Repeatedly click the down button until insufficient delta remains | ||||||
|                 guac_mouse.currentState.down = true; |             do { | ||||||
|                 guac_mouse.onmousedown(guac_mouse.currentState); |  | ||||||
|             } |  | ||||||
|  |  | ||||||
|             if (guac_mouse.onmouseup) { |                 if (guac_mouse.onmousedown) { | ||||||
|                 guac_mouse.currentState.down = false; |                     guac_mouse.currentState.down = true; | ||||||
|                 guac_mouse.onmouseup(guac_mouse.currentState); |                     guac_mouse.onmousedown(guac_mouse.currentState); | ||||||
|             } |                 } | ||||||
|  |  | ||||||
|             scroll_delta -= guac_mouse.scrollThreshold; |                 if (guac_mouse.onmouseup) { | ||||||
|  |                     guac_mouse.currentState.down = false; | ||||||
|  |                     guac_mouse.onmouseup(guac_mouse.currentState); | ||||||
|  |                 } | ||||||
|  |  | ||||||
|  |                 scroll_delta -= guac_mouse.scrollThreshold; | ||||||
|  |  | ||||||
|  |             } while (scroll_delta >= guac_mouse.scrollThreshold); | ||||||
|  |  | ||||||
|  |             // Reset delta | ||||||
|  |             scroll_delta = 0; | ||||||
|  |  | ||||||
|         } |         } | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user