Skip to content

Commit 086b5fc

Browse files
committed
Revert "Remove workaround for WebKit bug 44083."
This reverts commit 2b14807. Fixes d3#1903.
1 parent db8d305 commit 086b5fc

File tree

3 files changed

+39
-7
lines changed

3 files changed

+39
-7
lines changed

d3.js

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1089,12 +1089,27 @@
10891089
d3.mouse = function(container) {
10901090
return d3_mousePoint(container, d3_eventSource());
10911091
};
1092+
var d3_mouse_bug44083 = /WebKit/.test(d3_window.navigator.userAgent) ? -1 : 0;
10921093
function d3_mousePoint(container, e) {
10931094
if (e.changedTouches) e = e.changedTouches[0];
10941095
var svg = container.ownerSVGElement || container;
10951096
if (svg.createSVGPoint) {
10961097
var point = svg.createSVGPoint();
1097-
point.x = e.clientX, point.y = e.clientY;
1098+
if (d3_mouse_bug44083 < 0 && (d3_window.scrollX || d3_window.scrollY)) {
1099+
svg = d3.select("body").append("svg").style({
1100+
position: "absolute",
1101+
top: 0,
1102+
left: 0,
1103+
margin: 0,
1104+
padding: 0,
1105+
border: "none"
1106+
}, "important");
1107+
var ctm = svg[0][0].getScreenCTM();
1108+
d3_mouse_bug44083 = !(ctm.f || ctm.e);
1109+
svg.remove();
1110+
}
1111+
if (d3_mouse_bug44083) point.x = e.pageX, point.y = e.pageY; else point.x = e.clientX,
1112+
point.y = e.clientY;
10981113
point = point.matrixTransform(container.getScreenCTM().inverse());
10991114
return [ point.x, point.y ];
11001115
}

0 commit comments

Comments
 (0)