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();