@@ -38,7 +38,6 @@ define(function(require, exports, module) {
38
38
}
39
39
40
40
var downX , downY ;
41
- var editorRect ;
42
41
var MOUSE_HAS_DOWN = 0 ;
43
42
var MOUSE_HAS_UP = 1 ;
44
43
var flag = MOUSE_HAS_UP ;
@@ -48,8 +47,9 @@ define(function(require, exports, module) {
48
47
49
48
function move ( direction , speed ) {
50
49
if ( ! direction ) {
50
+ freeHorizen = freeVirtical = false ;
51
51
frame && kity . releaseFrame ( frame ) ;
52
- frame = null ;
52
+ frame = null ;
53
53
return ;
54
54
}
55
55
if ( ! frame ) {
@@ -72,7 +72,7 @@ define(function(require, exports, module) {
72
72
return ;
73
73
}
74
74
frame . next ( ) ;
75
- }
75
+ } ;
76
76
} ) ( direction , speed , minder ) ) ;
77
77
}
78
78
}
@@ -83,49 +83,50 @@ define(function(require, exports, module) {
83
83
downY = e . originEvent . clientY ;
84
84
maxX = minder . getPaper ( ) . container . clientWidth ;
85
85
maxY = minder . getPaper ( ) . container . clientHeight ;
86
- editorRect = minder . getPaper ( ) . container . getBoundingClientRect ( ) ;
87
86
} ) ;
88
87
89
88
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 ( )
92
90
&& ( Math . abs ( downX - e . originEvent . clientX ) > 10
93
91
|| 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 ) ;
116
98
} 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 ) ) {
120
117
121
- return fsm . jump ( 'drag' , 'user-drag' ) ;
118
+ if ( fsm . state ( ) == 'hotbox' ) {
119
+ hotbox . active ( Hotbox . STATE_IDLE ) ;
122
120
}
121
+
122
+ return fsm . jump ( 'drag' , 'user-drag' ) ;
123
123
}
124
124
} ) ;
125
125
126
126
document . body . onmouseup = function ( e ) {
127
127
flag = MOUSE_HAS_UP ;
128
128
if ( fsm . state ( ) == 'drag' ) {
129
+ move ( false ) ;
129
130
return fsm . jump ( 'normal' , 'drag-finish' ) ;
130
131
}
131
132
} ;
0 commit comments