Rename variables in setCapture proxy

The names of many variables were too similar. To make the code easier
to follow we renamed:

* _captureElem to _capturedElem
* _captureElemChanged() to _capturedElemChanged()
* captureElem to proxyElem
* elem to target

Co-authored-by: Alex Tanskanen <aleta@cendio.se>
Co-authored-by: Niko Lehto <nikle@cendio.se>
pull/36/head
Samuel Mannehed 6 years ago committed by Lauri Kasanen
parent 6acf3c9e62
commit 19dfb7901c

@ -21,7 +21,7 @@ export function stopEvent(e) {
// Emulate Element.setCapture() when not supported // Emulate Element.setCapture() when not supported
let _captureRecursion = false; let _captureRecursion = false;
let _captureElem = null; let _capturedElem = null;
function _captureProxy(e) { function _captureProxy(e) {
// Recursion protection as we'll see our own event // Recursion protection as we'll see our own event
if (_captureRecursion) return; if (_captureRecursion) return;
@ -30,7 +30,7 @@ function _captureProxy(e) {
const newEv = new e.constructor(e.type, e); const newEv = new e.constructor(e.type, e);
_captureRecursion = true; _captureRecursion = true;
_captureElem.dispatchEvent(newEv); _capturedElem.dispatchEvent(newEv);
_captureRecursion = false; _captureRecursion = false;
// Avoid double events // Avoid double events
@ -48,58 +48,58 @@ function _captureProxy(e) {
} }
// Follow cursor style of target element // Follow cursor style of target element
function _captureElemChanged() { function _capturedElemChanged() {
const captureElem = document.getElementById("noVNC_mouse_capture_elem"); const proxyElem = document.getElementById("noVNC_mouse_capture_elem");
captureElem.style.cursor = window.getComputedStyle(_captureElem).cursor; proxyElem.style.cursor = window.getComputedStyle(_capturedElem).cursor;
} }
const _captureObserver = new MutationObserver(_captureElemChanged); const _captureObserver = new MutationObserver(_capturedElemChanged);
let _captureIndex = 0; let _captureIndex = 0;
export function setCapture(elem) { export function setCapture(target) {
if (elem.setCapture) { if (target.setCapture) {
elem.setCapture(); target.setCapture();
// IE releases capture on 'click' events which might not trigger // IE releases capture on 'click' events which might not trigger
elem.addEventListener('mouseup', releaseCapture); target.addEventListener('mouseup', releaseCapture);
} else { } else {
// Release any existing capture in case this method is // Release any existing capture in case this method is
// called multiple times without coordination // called multiple times without coordination
releaseCapture(); releaseCapture();
let captureElem = document.getElementById("noVNC_mouse_capture_elem"); let proxyElem = document.getElementById("noVNC_mouse_capture_elem");
if (captureElem === null) { if (proxyElem === null) {
captureElem = document.createElement("div"); proxyElem = document.createElement("div");
captureElem.id = "noVNC_mouse_capture_elem"; proxyElem.id = "noVNC_mouse_capture_elem";
captureElem.style.position = "fixed"; proxyElem.style.position = "fixed";
captureElem.style.top = "0px"; proxyElem.style.top = "0px";
captureElem.style.left = "0px"; proxyElem.style.left = "0px";
captureElem.style.width = "100%"; proxyElem.style.width = "100%";
captureElem.style.height = "100%"; proxyElem.style.height = "100%";
captureElem.style.zIndex = 10000; proxyElem.style.zIndex = 10000;
captureElem.style.display = "none"; proxyElem.style.display = "none";
document.body.appendChild(captureElem); document.body.appendChild(proxyElem);
// This is to make sure callers don't get confused by having // This is to make sure callers don't get confused by having
// our blocking element as the target // our blocking element as the target
captureElem.addEventListener('contextmenu', _captureProxy); proxyElem.addEventListener('contextmenu', _captureProxy);
captureElem.addEventListener('mousemove', _captureProxy); proxyElem.addEventListener('mousemove', _captureProxy);
captureElem.addEventListener('mouseup', _captureProxy); proxyElem.addEventListener('mouseup', _captureProxy);
} }
_captureElem = elem; _capturedElem = target;
_captureIndex++; _captureIndex++;
// Track cursor and get initial cursor // Track cursor and get initial cursor
_captureObserver.observe(elem, {attributes: true}); _captureObserver.observe(target, {attributes: true});
_captureElemChanged(); _capturedElemChanged();
captureElem.style.display = ""; proxyElem.style.display = "";
// We listen to events on window in order to keep tracking if it // We listen to events on window in order to keep tracking if it
// happens to leave the viewport // happens to leave the viewport
@ -114,7 +114,7 @@ export function releaseCapture() {
document.releaseCapture(); document.releaseCapture();
} else { } else {
if (!_captureElem) { if (!_capturedElem) {
return; return;
} }
@ -124,14 +124,14 @@ export function releaseCapture() {
// Only clear it if it's the expected grab (i.e. no one // Only clear it if it's the expected grab (i.e. no one
// else has initiated a new grab) // else has initiated a new grab)
if (_captureIndex === expected) { if (_captureIndex === expected) {
_captureElem = null; _capturedElem = null;
} }
}, 0, _captureIndex); }, 0, _captureIndex);
_captureObserver.disconnect(); _captureObserver.disconnect();
const captureElem = document.getElementById("noVNC_mouse_capture_elem"); const proxyElem = document.getElementById("noVNC_mouse_capture_elem");
captureElem.style.display = "none"; proxyElem.style.display = "none";
window.removeEventListener('mousemove', _captureProxy); window.removeEventListener('mousemove', _captureProxy);
window.removeEventListener('mouseup', _captureProxy); window.removeEventListener('mouseup', _captureProxy);

Loading…
Cancel
Save