Navigation Menu

Skip to content

Commit

Permalink
Merge branch 'behavior-click' of https://github.com/jasondavies/d3 in…
Browse files Browse the repository at this point in the history
…to release
  • Loading branch information
mbostock committed Sep 27, 2011
2 parents 7d93964 + a7c318b commit 886f6b8
Show file tree
Hide file tree
Showing 4 changed files with 26 additions and 10 deletions.
16 changes: 12 additions & 4 deletions d3.js
Expand Up @@ -3727,6 +3727,7 @@ d3.behavior.drag = function() {
// snapshot the local context for subsequent dispatch
function start() {
d3_behavior_dragEvent = event;
d3_behavior_dragEventTarget = d3.event.target;
d3_behavior_dragOffset = d3_behavior_dragPoint((d3_behavior_dragTarget = this).parentNode);
d3_behavior_dragMoved = 0;
d3_behavior_dragArguments = arguments;
Expand All @@ -3746,6 +3747,7 @@ d3.behavior.drag = function() {
};

var d3_behavior_dragEvent,
d3_behavior_dragEventTarget,
d3_behavior_dragTarget,
d3_behavior_dragArguments,
d3_behavior_dragOffset,
Expand Down Expand Up @@ -3797,16 +3799,17 @@ function d3_behavior_dragUp() {

// If the node was moved, prevent the mouseup from propagating.
// Also prevent the subsequent click from propagating (e.g., for anchors).
if (d3_behavior_dragMoved) {
if (d3_behavior_dragMoved && d3_behavior_dragEventTarget === d3.event.target) {
d3_behavior_dragStopClick = true;
d3_behavior_dragCancel();
}
}

function d3_behavior_dragClick() {
if (d3_behavior_dragStopClick) {
if (d3_behavior_dragStopClick && d3_behavior_dragEventTarget === d3.event.target) {
d3_behavior_dragCancel();
d3_behavior_dragStopClick = false;
d3_behavior_dragEventTarget = null;
}
}

Expand Down Expand Up @@ -3840,6 +3843,7 @@ d3.behavior.zoom = function() {
function start() {
d3_behavior_zoomXyz = xyz;
d3_behavior_zoomDispatch = event.zoom.dispatch;
d3_behavior_zoomEventTarget = d3.event.target;
d3_behavior_zoomTarget = this;
d3_behavior_zoomArguments = arguments;
}
Expand Down Expand Up @@ -3892,6 +3896,7 @@ var d3_behavior_zoomDiv,
d3_behavior_zoomLast = 0,
d3_behavior_zoomXyz,
d3_behavior_zoomDispatch,
d3_behavior_zoomEventTarget,
d3_behavior_zoomTarget,
d3_behavior_zoomArguments,
d3_behavior_zoomMoved,
Expand Down Expand Up @@ -3982,17 +3987,20 @@ function d3_behavior_zoomMousemove() {

function d3_behavior_zoomMouseup() {
if (d3_behavior_zoomPanning) {
if (d3_behavior_zoomMoved) d3_behavior_zoomStopClick = true;
if (d3_behavior_zoomMoved && d3_behavior_zoomEventTarget === d3.event.target) {
d3_behavior_zoomStopClick = true;
}
d3_behavior_zoomMousemove();
d3_behavior_zoomPanning = null;
}
}

function d3_behavior_zoomClick() {
if (d3_behavior_zoomStopClick) {
if (d3_behavior_zoomStopClick && d3_behavior_zoomEventTarget === d3.event.target) {
d3.event.stopPropagation();
d3.event.preventDefault();
d3_behavior_zoomStopClick = false;
d3_behavior_zoomEventTarget = null;
}
}

Expand Down
4 changes: 2 additions & 2 deletions d3.min.js

Large diffs are not rendered by default.

7 changes: 5 additions & 2 deletions src/behavior/drag.js
Expand Up @@ -17,6 +17,7 @@ d3.behavior.drag = function() {
// snapshot the local context for subsequent dispatch
function start() {
d3_behavior_dragEvent = event;
d3_behavior_dragEventTarget = d3.event.target;
d3_behavior_dragOffset = d3_behavior_dragPoint((d3_behavior_dragTarget = this).parentNode);
d3_behavior_dragMoved = 0;
d3_behavior_dragArguments = arguments;
Expand All @@ -36,6 +37,7 @@ d3.behavior.drag = function() {
};

var d3_behavior_dragEvent,
d3_behavior_dragEventTarget,
d3_behavior_dragTarget,
d3_behavior_dragArguments,
d3_behavior_dragOffset,
Expand Down Expand Up @@ -87,16 +89,17 @@ function d3_behavior_dragUp() {

// If the node was moved, prevent the mouseup from propagating.
// Also prevent the subsequent click from propagating (e.g., for anchors).
if (d3_behavior_dragMoved) {
if (d3_behavior_dragMoved && d3_behavior_dragEventTarget === d3.event.target) {
d3_behavior_dragStopClick = true;
d3_behavior_dragCancel();
}
}

function d3_behavior_dragClick() {
if (d3_behavior_dragStopClick) {
if (d3_behavior_dragStopClick && d3_behavior_dragEventTarget === d3.event.target) {
d3_behavior_dragCancel();
d3_behavior_dragStopClick = false;
d3_behavior_dragEventTarget = null;
}
}

Expand Down
9 changes: 7 additions & 2 deletions src/behavior/zoom.js
Expand Up @@ -24,6 +24,7 @@ d3.behavior.zoom = function() {
function start() {
d3_behavior_zoomXyz = xyz;
d3_behavior_zoomDispatch = event.zoom.dispatch;
d3_behavior_zoomEventTarget = d3.event.target;
d3_behavior_zoomTarget = this;
d3_behavior_zoomArguments = arguments;
}
Expand Down Expand Up @@ -76,6 +77,7 @@ var d3_behavior_zoomDiv,
d3_behavior_zoomLast = 0,
d3_behavior_zoomXyz,
d3_behavior_zoomDispatch,
d3_behavior_zoomEventTarget,
d3_behavior_zoomTarget,
d3_behavior_zoomArguments,
d3_behavior_zoomMoved,
Expand Down Expand Up @@ -166,17 +168,20 @@ function d3_behavior_zoomMousemove() {

function d3_behavior_zoomMouseup() {
if (d3_behavior_zoomPanning) {
if (d3_behavior_zoomMoved) d3_behavior_zoomStopClick = true;
if (d3_behavior_zoomMoved && d3_behavior_zoomEventTarget === d3.event.target) {
d3_behavior_zoomStopClick = true;
}
d3_behavior_zoomMousemove();
d3_behavior_zoomPanning = null;
}
}

function d3_behavior_zoomClick() {
if (d3_behavior_zoomStopClick) {
if (d3_behavior_zoomStopClick && d3_behavior_zoomEventTarget === d3.event.target) {
d3.event.stopPropagation();
d3.event.preventDefault();
d3_behavior_zoomStopClick = false;
d3_behavior_zoomEventTarget = null;
}
}

Expand Down

0 comments on commit 886f6b8

Please sign in to comment.