* Cross-browser event and position routines
*/
-import * as Log from './logging.js';
-
export function getPointerEvent (e) {
return e.changedTouches ? e.changedTouches[0] : e.touches ? e.touches[0] : e;
-};
+}
export function stopEvent (e) {
e.stopPropagation();
e.preventDefault();
-};
+}
// Emulate Element.setCapture() when not supported
var _captureRecursion = false;
var _captureElem = null;
-const _captureProxy = function (e) {
+function _captureProxy(e) {
// Recursion protection as we'll see our own event
if (_captureRecursion) return;
}
// Implicitly release the capture on button release
- if ((e.type === "mouseup") || (e.type === "touchend")) {
+ if (e.type === "mouseup") {
releaseCapture();
}
-};
+}
// Follow cursor style of target element
-const _captureElemChanged = function() {
+function _captureElemChanged() {
var captureElem = document.getElementById("noVNC_mouse_capture_elem");
captureElem.style.cursor = window.getComputedStyle(_captureElem).cursor;
-};
-const _captureObserver = new MutationObserver(_captureElemChanged);
+}
+var _captureObserver = new MutationObserver(_captureElemChanged);
var _captureIndex = 0;
// IE releases capture on 'click' events which might not trigger
elem.addEventListener('mouseup', releaseCapture);
- elem.addEventListener('touchend', releaseCapture);
} else {
// Release any existing capture in case this method is
// called multiple times without coordination
releaseCapture();
- // Safari on iOS 9 has a broken constructor for TouchEvent.
- // We are fine in this case however, since Safari seems to
- // have some sort of implicit setCapture magic anyway.
- if (window.TouchEvent !== undefined) {
- try {
- new TouchEvent("touchstart");
- } catch (TypeError) {
- return;
- }
- }
-
var captureElem = document.getElementById("noVNC_mouse_capture_elem");
if (captureElem === null) {
captureElem.addEventListener('mousemove', _captureProxy);
captureElem.addEventListener('mouseup', _captureProxy);
-
- captureElem.addEventListener('touchmove', _captureProxy);
- captureElem.addEventListener('touchend', _captureProxy);
}
_captureElem = elem;
_captureObserver.observe(elem, {attributes:true});
_captureElemChanged();
- captureElem.style.display = null;
+ captureElem.style.display = "";
// We listen to events on window in order to keep tracking if it
// happens to leave the viewport
window.addEventListener('mousemove', _captureProxy);
window.addEventListener('mouseup', _captureProxy);
-
- window.addEventListener('touchmove', _captureProxy);
- window.addEventListener('touchend', _captureProxy);
}
-};
+}
export function releaseCapture () {
if (document.releaseCapture) {
window.removeEventListener('mousemove', _captureProxy);
window.removeEventListener('mouseup', _captureProxy);
-
- window.removeEventListener('touchmove', _captureProxy);
- window.removeEventListener('touchend', _captureProxy);
}
-};
+}