Bug fix: Drag threshold was prevent drag events when zoomed in
JIRA Tasks; ONOS-6261
Change-Id: I4165649404562054b5ae38b7c0c4e818c2b9dd66
diff --git a/web/gui/src/main/webapp/app/fw/svg/svgUtil.js b/web/gui/src/main/webapp/app/fw/svg/svgUtil.js
index 16a6c7e..1d8dee3 100644
--- a/web/gui/src/main/webapp/app/fw/svg/svgUtil.js
+++ b/web/gui/src/main/webapp/app/fw/svg/svgUtil.js
@@ -30,7 +30,7 @@
// TODO: change 'force' ref to be 'force.alpha' ref.
function createDragBehavior(force, selectCb, atDragEnd,
- dragEnabled, clickEnabled) {
+ dragEnabled, clickEnabled, zs) {
var draggedThreshold = d3.scale.linear()
.domain([0, 0.1])
.range([5, 20])
@@ -70,9 +70,11 @@
}
function dragged(d) {
- var threshold = draggedThreshold(force.alpha()),
+ var scale = zs ? zs.scale() : 1,
+ threshold = draggedThreshold(force.alpha()) / scale,
dx = d.oldX - d.px,
dy = d.oldY - d.py;
+
if (Math.abs(dx) >= threshold || Math.abs(dy) >= threshold) {
d.dragged = true;
}
@@ -83,8 +85,6 @@
.origin(function(d) { return d; })
.on('dragstart', function(d) {
if (clickEnabled() || dragEnabled()) {
- d3.event.sourceEvent.stopPropagation();
-
d.oldX = d.x;
d.oldY = d.y;
d.dragged = false;
@@ -104,7 +104,7 @@
}
})
.on('dragend', function(d) {
- d3.event.sourceEvent.preventDefault();
+ d3.event.sourceEvent.stopPropagation();
if (d.dragStarted) {
d.dragStarted = false;
diff --git a/web/gui/src/main/webapp/app/view/topo2/topo2Layout.js b/web/gui/src/main/webapp/app/view/topo2/topo2Layout.js
index c5e8251..97fac88 100644
--- a/web/gui/src/main/webapp/app/view/topo2/topo2Layout.js
+++ b/web/gui/src/main/webapp/app/view/topo2/topo2Layout.js
@@ -145,7 +145,8 @@
function () {}, // click event is no longer handled in the drag service
this.atDragEnd,
this.dragEnabled.bind(this),
- clickEnabled
+ clickEnabled,
+ t2zs
);
this.update();