mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 00:53:21 +00:00 
			
		
		
		
	Changed simulated mouse to simulated touchpad. Temporary lack of tap support.
This commit is contained in:
		| @@ -113,41 +113,33 @@ Guacamole.Mouse = function(element) { | ||||
|  | ||||
|     }; | ||||
|  | ||||
|     var last_touch_x = 0; | ||||
|     var last_touch_y = 0; | ||||
|  | ||||
|     element.ontouchend = function(e) { | ||||
|          | ||||
|         e.stopPropagation(); | ||||
|         e.preventDefault(); | ||||
|  | ||||
|         // Release all buttons (FIXME: for now...) | ||||
|         if (mouseLeftButton || mouseMiddleButton || mouseRightButton) { | ||||
|             mouseLeftButton = 0; | ||||
|             mouseMiddleButton = 0; | ||||
|             mouseRightButton = 0; | ||||
|         // TODO: Handle tap-to-click. | ||||
|  | ||||
|             buttonReleasedHandler(getMouseState(0, 0)); | ||||
|         } | ||||
|  | ||||
|     } | ||||
|     }; | ||||
|  | ||||
|     element.ontouchstart = function(e) { | ||||
|  | ||||
|         e.stopPropagation(); | ||||
|         e.preventDefault(); | ||||
|  | ||||
|         if (e.touches.length == 1) | ||||
|             element.ontouchmove(e); | ||||
|         // Record initial touch location and time for single-touch movement | ||||
|         // and tap gestures | ||||
|         if (e.touches.length == 1) { | ||||
|  | ||||
|         else { | ||||
|              | ||||
|             var button = e.touches[0]; | ||||
|             var pointer = e.touches[1]; | ||||
|             var starting_touch = e.touches[0]; | ||||
|             last_touch_x = starting_touch.pageX; | ||||
|             last_touch_y = starting_touch.pageY; | ||||
|  | ||||
|             if (pointer.pageX < button.pageX) | ||||
|                 mouseLeftButton = 1; | ||||
|             else | ||||
|                 mouseRightButton = 1; | ||||
|             // TODO: Record time (for sake of tap-to-click) | ||||
|  | ||||
|             buttonPressedHandler(getMouseState(0, 0)); | ||||
|         } | ||||
|  | ||||
|     }; | ||||
| @@ -157,8 +149,29 @@ Guacamole.Mouse = function(element) { | ||||
|         e.stopPropagation(); | ||||
|         e.preventDefault(); | ||||
|  | ||||
|         var touch = e.touches[0]; | ||||
|         moveMouse(touch.pageX, touch.pageY); | ||||
|         // Handle single-touch movement gesture (touchpad mouse move) | ||||
|         if (e.touches.length == 1) { | ||||
|  | ||||
|             // Get change in touch location | ||||
|             var touch = e.touches[0]; | ||||
|             var delta_x = touch.pageX - last_touch_x; | ||||
|             var delta_y = touch.pageY - last_touch_y; | ||||
|  | ||||
|             // Update mouse location | ||||
|             guac_mouse.currentState.x += delta_x; | ||||
|             guac_mouse.currentState.y += delta_y; | ||||
|  | ||||
|             // FIXME: Prevent mouse from leaving screen | ||||
|  | ||||
|             // Fire movement event, if defined | ||||
|             if (guac_mouse.onmousemove) | ||||
|                 guac_mouse.onmousemove(guac_mouse.currentState); | ||||
|  | ||||
|             // Update touch location | ||||
|             last_touch_x = touch.pageX; | ||||
|             last_touch_y = touch.pageY; | ||||
|  | ||||
|         } | ||||
|  | ||||
|     }; | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user