From 8cbf1dd9d220950ea5163a3c2da2ebca0c7bc450 Mon Sep 17 00:00:00 2001 From: Samuel Mannehed Date: Thu, 16 Feb 2017 13:25:34 +0100 Subject: [PATCH] Set correct cursor style for setCapture() --- core/util.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) 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";