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