Skip to content

Commit 1291137

Browse files
committed
Merge branch 'dev'
2 parents 9c8b68a + 3ebea43 commit 1291137

File tree

1 file changed

+33
-32
lines changed

1 file changed

+33
-32
lines changed

src/runtime/drag.js

+33-32
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ define(function(require, exports, module) {
3838
}
3939

4040
var downX, downY;
41-
var editorRect;
4241
var MOUSE_HAS_DOWN = 0;
4342
var MOUSE_HAS_UP = 1;
4443
var flag = MOUSE_HAS_UP;
@@ -48,8 +47,9 @@ define(function(require, exports, module) {
4847

4948
function move(direction, speed) {
5049
if (!direction) {
50+
freeHorizen = freeVirtical = false;
5151
frame && kity.releaseFrame(frame);
52-
frame = null;
52+
frame = null;
5353
return;
5454
}
5555
if (!frame) {
@@ -72,7 +72,7 @@ define(function(require, exports, module) {
7272
return;
7373
}
7474
frame.next();
75-
}
75+
};
7676
})(direction, speed, minder));
7777
}
7878
}
@@ -83,49 +83,50 @@ define(function(require, exports, module) {
8383
downY = e.originEvent.clientY;
8484
maxX = minder.getPaper().container.clientWidth;
8585
maxY = minder.getPaper().container.clientHeight;
86-
editorRect = minder.getPaper().container.getBoundingClientRect();
8786
});
8887

8988
minder.on('mousemove', function(e) {
90-
if (flag == MOUSE_HAS_DOWN
91-
&& minder.getSelectedNode()
89+
if (fsm.state() === 'drag' && flag == MOUSE_HAS_DOWN && minder.getSelectedNode()
9290
&& (Math.abs(downX - e.originEvent.clientX) > 10
9391
|| Math.abs(downY - e.originEvent.clientY) > 10)) {
94-
if (fsm.state() === 'drag') {
95-
osx = e.originEvent.clientX;
96-
osy = e.originEvent.clientY - editorRect.top;
97-
98-
if (osx < 10) {
99-
move('right', 10 - osx);
100-
} else if (osx > maxX - 10) {
101-
move('left', 10 + osx - maxX);
102-
} else {
103-
freeHorizen = true;
104-
}
105-
if (osy < 10) {
106-
move('bottom', osy);
107-
} else if (osy > maxY - 10) {
108-
move('top', 10 + osy - maxY);
109-
} else {
110-
freeVirtical = true;
111-
}
112-
if (freeHorizen && freeVirtical) {
113-
freeHorizen = freeVirtical = false;
114-
move(false);
115-
}
92+
osx = e.originEvent.offsetX;
93+
osy = e.originEvent.offsetY;
94+
if (osx < 10) {
95+
move('right', 10 - osx);
96+
} else if (osx > maxX - 10) {
97+
move('left', 10 + osx - maxX);
11698
} else {
117-
if (fsm.state() == 'hotbox') {
118-
hotbox.active(Hotbox.STATE_IDLE);
119-
}
99+
freeHorizen = true;
100+
}
101+
if (osy < 10) {
102+
move('bottom', osy);
103+
} else if (osy > maxY - 10) {
104+
move('top', 10 + osy - maxY);
105+
} else {
106+
freeVirtical = true;
107+
}
108+
if (freeHorizen && freeVirtical) {
109+
move(false);
110+
}
111+
}
112+
if (fsm.state() != 'drag'
113+
&& flag == MOUSE_HAS_DOWN
114+
&& minder.getSelectedNode()
115+
&& (Math.abs(downX - e.originEvent.clientX) > 10
116+
|| Math.abs(downY - e.originEvent.clientY) > 10)) {
120117

121-
return fsm.jump('drag', 'user-drag');
118+
if (fsm.state() == 'hotbox') {
119+
hotbox.active(Hotbox.STATE_IDLE);
122120
}
121+
122+
return fsm.jump('drag', 'user-drag');
123123
}
124124
});
125125

126126
document.body.onmouseup = function(e) {
127127
flag = MOUSE_HAS_UP;
128128
if (fsm.state() == 'drag') {
129+
move(false);
129130
return fsm.jump('normal', 'drag-finish');
130131
}
131132
};

0 commit comments

Comments
 (0)