import "../core/document"; import "../core/vendor"; import "../selection/on"; var d3_event_dragSelect = d3_vendorSymbol(d3_documentElement.style, "userSelect"), d3_event_dragId = 0; function d3_event_dragSuppress() { var name = ".dragsuppress-" + ++d3_event_dragId, touchmove = "touchmove" + name, selectstart = "selectstart" + name, dragstart = "dragstart" + name, click = "click" + name, w = d3.select(d3_window).on(touchmove, d3_eventPreventDefault).on(selectstart, d3_eventPreventDefault).on(dragstart, d3_eventPreventDefault), style = d3_documentElement.style, select = style[d3_event_dragSelect]; style[d3_event_dragSelect] = "none"; return function(suppressClick) { w.on(name, null); style[d3_event_dragSelect] = select; if (suppressClick) { // suppress the next click, but only if it’s immediate function off() { w.on(click, null); } w.on(click, function() { d3_eventPreventDefault(); off(); }, true); setTimeout(off, 0); } }; }