@@ -92,8 +92,7 @@ export class Tooltip extends Mark {
92
92
let sticky = false ;
93
93
94
94
function pointermove ( event ) {
95
- if ( sticky ) return ;
96
- if ( event . buttons === 1 ) return ; // dragging
95
+ if ( sticky || ( event . pointerType === "mouse" && event . buttons === 1 ) ) return ; // dragging
97
96
const rect = svg . getBoundingClientRect ( ) ;
98
97
let ii , fxi , fyi ;
99
98
if (
@@ -206,7 +205,8 @@ export class Tooltip extends Mark {
206
205
}
207
206
}
208
207
209
- function pointerdown ( ) {
208
+ function pointerdown ( event ) {
209
+ if ( event . pointerType !== "mouse" ) return ;
210
210
if ( sticky ) {
211
211
sticky = false ;
212
212
dot . attr ( "display" , "none" ) ;
@@ -217,7 +217,8 @@ export class Tooltip extends Mark {
217
217
}
218
218
}
219
219
220
- function pointerleave ( ) {
220
+ function pointerleave ( event ) {
221
+ if ( event . pointerType !== "mouse" ) return ;
221
222
if ( ! sticky ) {
222
223
dot . attr ( "display" , "none" ) ;
223
224
dot . attr ( "pointer-events" , "none" ) ;
@@ -246,6 +247,7 @@ export class Tooltip extends Mark {
246
247
// us receive pointer events from farther away, but would also make it hard
247
248
// to know when to remove the listeners. (Using a mutation observer to watch
248
249
// the entire document is likely too expensive.)
250
+ svg . addEventListener ( "pointerenter" , pointermove ) ;
249
251
svg . addEventListener ( "pointermove" , pointermove ) ;
250
252
svg . addEventListener ( "pointerdown" , pointerdown ) ;
251
253
svg . addEventListener ( "pointerleave" , pointerleave ) ;
0 commit comments