diff --git a/core/util.js b/core/util.js index 27fc1791..03e69256 100644 --- a/core/util.js +++ b/core/util.js @@ -507,6 +507,13 @@ Util._captureProxy = function (e) { } }; +// Follow cursor style of target element +Util._captureElemChanged = function() { + var captureElem = document.getElementById("noVNC_mouse_capture_elem"); + captureElem.style.cursor = window.getComputedStyle(Util._captureElem).cursor; +}; +Util._captureObserver = new MutationObserver(Util._captureElemChanged); + Util.setCapture = function (elem) { if (elem.setCapture) { @@ -558,6 +565,11 @@ Util.setCapture = function (elem) { } Util._captureElem = elem; + + // Track cursor and get initial cursor + Util._captureObserver.observe(elem, {attributes:true}); + Util._captureElemChanged(); + captureElem.style.display = null; // We listen to events on window in order to keep tracking if it @@ -586,6 +598,8 @@ Util.releaseCapture = function () { // FIXME: What happens if setCapture is called before this fires? window.setTimeout(function() { Util._captureElem = null; }); + Util._captureObserver.disconnect(); + var captureElem = document.getElementById("noVNC_mouse_capture_elem"); captureElem.style.display = "none";