@@ -74,28 +74,18 @@ var CanvasView = View.extend(/** @lends CanvasView# */{
7474 tolerance : 0
7575 } ;
7676
77- function callEvent ( item , event , bubble ) {
78- var called = false ;
79- while ( item ) {
80- called = item . fire ( event . type , event ) || called ;
81- if ( called && ( ! bubble || event . _stopped ) )
82- break ;
83- item = item . getParent ( ) ;
84- }
85- return called ;
86- }
87-
8877 function handleEvent ( view , type , event , point ) {
8978 if ( view . _eventCounters [ type ] ) {
9079 var hit = view . _project . hitTest ( point , hitOptions ) ;
9180 if ( hit && hit . item ) {
92- callEvent ( hit . item , new MouseEvent ( type , point ,
93- hit . item , event ) , false ) ;
94- return hit ;
81+ new MouseEvent ( type , point , hit . item , event ) . _call ( ) ;
82+ return hit . item ;
9583 }
9684 }
9785 }
9886
87+ var overItem = null ;
88+
9989 return {
10090 _onMouseDown : function ( event , point ) {
10191 handleEvent ( this , 'mousedown' , event , point ) ;
@@ -106,7 +96,12 @@ var CanvasView = View.extend(/** @lends CanvasView# */{
10696 } ,
10797
10898 _onMouseMove : function ( event , point ) {
109- handleEvent ( this , 'mousemove' , event , point ) ;
99+ var item = handleEvent ( this , 'mousemove' , event , point ) ;
100+ if ( item != overItem ) {
101+ new MouseEvent ( 'mouseleave' , point , overItem , event ) . _call ( ) ;
102+ overItem = item ;
103+ new MouseEvent ( 'mouseenter' , point , item , event ) . _call ( ) ;
104+ }
110105 }
111106 } ;
112107} ) ;
0 commit comments