mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 21:27:40 +00:00
Experimental working touch-based mouse.
This commit is contained in:
@@ -46,15 +46,10 @@ function GuacamoleMouse(element) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Block context menu so right-click gets sent properly
|
function moveMouse(pageX, pageY) {
|
||||||
element.oncontextmenu = function(e) {return false;};
|
|
||||||
|
|
||||||
element.onmousemove = function(e) {
|
absoluteMouseX = pageX;
|
||||||
|
absoluteMouseY = pageY;
|
||||||
e.stopPropagation();
|
|
||||||
|
|
||||||
absoluteMouseX = e.pageX;
|
|
||||||
absoluteMouseY = e.pageY;
|
|
||||||
|
|
||||||
mouseX = absoluteMouseX - element.offsetLeft;
|
mouseX = absoluteMouseX - element.offsetLeft;
|
||||||
mouseY = absoluteMouseY - element.offsetTop;
|
mouseY = absoluteMouseY - element.offsetTop;
|
||||||
@@ -70,6 +65,68 @@ function GuacamoleMouse(element) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
movementHandler(getMouseState(0, 0));
|
movementHandler(getMouseState(0, 0));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// Block context menu so right-click gets sent properly
|
||||||
|
element.oncontextmenu = function(e) {return false;};
|
||||||
|
|
||||||
|
element.onmousemove = function(e) {
|
||||||
|
|
||||||
|
e.stopPropagation();
|
||||||
|
|
||||||
|
moveMouse(e.pageX, e.pageY);
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
element.ontouchend = function(e) {
|
||||||
|
|
||||||
|
e.stopPropagation();
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
// Release all buttons (FIXME: for now...)
|
||||||
|
if (mouseLeftButton || mouseMiddleButton || mouseRightButton) {
|
||||||
|
mouseLeftButton = 0;
|
||||||
|
mouseMiddleButton = 0;
|
||||||
|
mouseRightButton = 0;
|
||||||
|
|
||||||
|
buttonReleasedHandler(getMouseState(0, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
element.ontouchstart = function(e) {
|
||||||
|
|
||||||
|
e.stopPropagation();
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
if (e.touches.length == 1)
|
||||||
|
element.ontouchmove(e);
|
||||||
|
|
||||||
|
else {
|
||||||
|
|
||||||
|
var button = e.touches[0];
|
||||||
|
var pointer = e.touches[1];
|
||||||
|
|
||||||
|
if (pointer.pageX < button.pageX)
|
||||||
|
mouseLeftButton = 1;
|
||||||
|
else
|
||||||
|
mouseRightButton = 1;
|
||||||
|
|
||||||
|
buttonPressedHandler(getMouseState(0, 0));
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
element.ontouchmove = function(e) {
|
||||||
|
|
||||||
|
e.stopPropagation();
|
||||||
|
e.preventDefault();
|
||||||
|
|
||||||
|
var touch = e.touches[0];
|
||||||
|
moveMouse(touch.pageX, touch.pageY);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user