mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-07 05:31:22 +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