mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 13:17:41 +00:00
Experimental auto-scroll of UI when mouse goes offscreen.
This commit is contained in:
@@ -261,7 +261,38 @@ GuacamoleUI.attach = function(guac) {
|
||||
var mouse = new Guacamole.Mouse(GuacamoleUI.display);
|
||||
mouse.onmousedown = mouse.onmouseup = mouse.onmousemove =
|
||||
function(mouseState) {
|
||||
|
||||
// Determine mouse position within view
|
||||
var mouse_view_x = mouseState.x + GuacamoleUI.display.offsetLeft - window.pageXOffset;
|
||||
var mouse_view_y = mouseState.y + GuacamoleUI.display.offsetTop - window.pageYOffset;
|
||||
|
||||
var view_width = document.body.clientWidth;
|
||||
var view_height = document.body.clientHeight;
|
||||
|
||||
// Determine scroll amounts based on mouse position relative to document
|
||||
|
||||
var scroll_amount_x;
|
||||
if (mouse_view_x > view_width)
|
||||
scroll_amount_x = mouse_view_x - view_width;
|
||||
else if (mouse_view_x < 0)
|
||||
scroll_amount_x = mouse_view_x;
|
||||
else
|
||||
scroll_amount_x = 0;
|
||||
|
||||
var scroll_amount_y;
|
||||
if (mouse_view_y > view_height)
|
||||
scroll_amount_y = mouse_view_y - view_height;
|
||||
else if (mouse_view_y < 0)
|
||||
scroll_amount_y = mouse_view_y;
|
||||
else
|
||||
scroll_amount_y = 0;
|
||||
|
||||
// Scroll (if necessary) to keep mouse on screen.
|
||||
window.scrollBy(scroll_amount_x, scroll_amount_y);
|
||||
|
||||
// Send mouse event
|
||||
guac.sendMouseState(mouseState);
|
||||
|
||||
};
|
||||
|
||||
// Keyboard
|
||||
|
Reference in New Issue
Block a user