From 7d9f7fdb01198286808cba64a9bb4122daf895d9 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Tue, 1 May 2012 14:33:31 -0700 Subject: [PATCH] Properly offset mouse by document scroll amount (Firefox/Chrome, etc. inconsistency) - fixes ticket #124. --- src/main/resources/mouse.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/main/resources/mouse.js b/src/main/resources/mouse.js index 1c68174..8fd1d6a 100644 --- a/src/main/resources/mouse.js +++ b/src/main/resources/mouse.js @@ -128,14 +128,20 @@ Guacamole.Mouse = function(element) { // This is all JUST so we can get the mouse position within the element var parent = element.offsetParent; - while (parent) { - + while (parent && !(parent === document.body)) { guac_mouse.currentState.x -= parent.offsetLeft - parent.scrollLeft; guac_mouse.currentState.y -= parent.offsetTop - parent.scrollTop; parent = parent.offsetParent; } + // Offset by document scroll amount + var documentScrollLeft = document.body.scrollLeft || document.documentElement.scrollLeft; + var documentScrollTop = document.body.scrollTop || document.documentElement.scrollTop; + + guac_mouse.currentState.x -= parent.offsetLeft - documentScrollLeft; + guac_mouse.currentState.y -= parent.offsetTop - documentScrollTop; + if (guac_mouse.onmousemove) guac_mouse.onmousemove(guac_mouse.currentState); -- 1.7.10.4