Only take parent into account if actually relevant to positioning.
authorMichael Jumper <zhangmaike@users.sourceforge.net>
Wed, 1 Aug 2012 18:33:39 +0000 (11:33 -0700)
committerMichael Jumper <zhangmaike@users.sourceforge.net>
Wed, 1 Aug 2012 18:33:39 +0000 (11:33 -0700)
src/main/resources/mouse.js

index 857cef3..55f99b1 100644 (file)
@@ -765,12 +765,15 @@ Guacamole.Mouse.State = function(x, y, left, middle, right, up, down) {
             parent = parent.offsetParent;
         }
 
             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_state.x -= parent.offsetLeft - documentScrollLeft;
-        guac_state.y -= parent.offsetTop  - documentScrollTop;
+        // Element ultimately depends on positioning within document body,
+        // take document scroll into account. 
+        if (parent) {
+            var documentScrollLeft = document.body.scrollLeft || document.documentElement.scrollLeft;
+            var documentScrollTop = document.body.scrollTop || document.documentElement.scrollTop;
+
+            guac_state.x -= parent.offsetLeft - documentScrollLeft;
+            guac_state.y -= parent.offsetTop  - documentScrollTop;
+        }
 
     };
 
 
     };