@@ -46,7 +46,7 @@ export default function setupHighlighter(
46
46
window . addEventListener ( 'mouseover' , onMouseEvent , true ) ;
47
47
window . addEventListener ( 'mouseup' , onMouseEvent , true ) ;
48
48
window . addEventListener ( 'pointerdown' , onPointerDown , true ) ;
49
- window . addEventListener ( 'pointerover ' , onPointerOver , true ) ;
49
+ window . addEventListener ( 'pointermove ' , onPointerMove , true ) ;
50
50
window . addEventListener ( 'pointerup' , onPointerUp , true ) ;
51
51
} else {
52
52
agent . emit ( 'startInspectingNative' ) ;
@@ -74,7 +74,7 @@ export default function setupHighlighter(
74
74
window . removeEventListener ( 'mouseover' , onMouseEvent , true ) ;
75
75
window . removeEventListener ( 'mouseup' , onMouseEvent , true ) ;
76
76
window . removeEventListener ( 'pointerdown' , onPointerDown , true ) ;
77
- window . removeEventListener ( 'pointerover ' , onPointerOver , true ) ;
77
+ window . removeEventListener ( 'pointermove ' , onPointerMove , true ) ;
78
78
window . removeEventListener ( 'pointerup' , onPointerUp , true ) ;
79
79
} else {
80
80
agent . emit ( 'stopInspectingNative' ) ;
@@ -151,14 +151,17 @@ export default function setupHighlighter(
151
151
event . preventDefault ( ) ;
152
152
event . stopPropagation ( ) ;
153
153
154
- selectFiberForNode ( ( ( event . target : any ) : HTMLElement ) ) ;
154
+ selectFiberForNode ( getEventTarget ( event ) ) ;
155
155
}
156
156
157
- function onPointerOver ( event : MouseEvent ) {
157
+ let lastHoveredNode : HTMLElement | null = null ;
158
+ function onPointerMove ( event : MouseEvent ) {
158
159
event . preventDefault ( ) ;
159
160
event . stopPropagation ( ) ;
160
161
161
- const target = ( ( event . target : any ) : HTMLElement ) ;
162
+ const target : HTMLElement = getEventTarget ( event ) ;
163
+ if ( lastHoveredNode === target ) return ;
164
+ lastHoveredNode = target ;
162
165
163
166
if ( target . tagName === 'IFRAME' ) {
164
167
const iframe : HTMLIFrameElement = ( target : any ) ;
@@ -197,4 +200,12 @@ export default function setupHighlighter(
197
200
// because those are usually unintentional as you lift the cursor.
198
201
{ leading : false } ,
199
202
) ;
203
+
204
+ function getEventTarget ( event : MouseEvent ) : HTMLElement {
205
+ if ( event . composed ) {
206
+ return ( event . composedPath ( ) [ 0 ] : any ) ;
207
+ }
208
+
209
+ return ( event . target : any ) ;
210
+ }
200
211
}
0 commit comments