mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 00:53:21 +00:00 
			
		
		
		
	GUAC-324: Scroll page with emulated mouse.
This commit is contained in:
		| @@ -998,6 +998,37 @@ GuacUI.Client.setMouseEmulationAbsolute = function(absolute) { | |||||||
|         var guac = GuacUI.Client.attachedClient; |         var guac = GuacUI.Client.attachedClient; | ||||||
|         if (!guac) return; |         if (!guac) return; | ||||||
|     |     | ||||||
|  |         // Determine mouse position within view | ||||||
|  |         var guac_display = guac.getDisplay(); | ||||||
|  |         var mouse_view_x = mouseState.x + guac_display.offsetLeft - GuacUI.Client.main.scrollLeft; | ||||||
|  |         var mouse_view_y = mouseState.y + guac_display.offsetTop  - GuacUI.Client.main.scrollTop; | ||||||
|  |  | ||||||
|  |         // Determine viewport dimensioins | ||||||
|  |         var view_width  = GuacUI.Client.main.offsetWidth; | ||||||
|  |         var view_height = GuacUI.Client.main.offsetHeight; | ||||||
|  |  | ||||||
|  |         // 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. | ||||||
|  |         GuacUI.Client.main.scrollLeft += scroll_amount_x; | ||||||
|  |         GuacUI.Client.main.scrollTop  += scroll_amount_y; | ||||||
|  |  | ||||||
|         // Scale event by current scale |         // Scale event by current scale | ||||||
|         var scaledState = new Guacamole.Mouse.State( |         var scaledState = new Guacamole.Mouse.State( | ||||||
|                 mouseState.x / guac.getScale(), |                 mouseState.x / guac.getScale(), | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user