@@ -192,7 +192,16 @@ export class EventDispatcher {
192
192
currentHoverTarget = target ;
193
193
}
194
194
195
+ let skipMouseEvent = false ;
196
+
195
197
this . onPointerDown = function ( ev ) {
198
+ const isTouchStart = ev . type == 'touchstart' ;
199
+
200
+ if ( ! isTouchStart && skipMouseEvent ) {
201
+ skipMouseEvent = false ;
202
+ return ;
203
+ }
204
+
196
205
startMapCenter = map . getCenter ( ) ;
197
206
isPointerDown = true ;
198
207
isDragged = false ;
@@ -201,12 +210,19 @@ export class EventDispatcher {
201
210
trigger ( POINTER_DOWN , ev , MOUSEDOWN_POS , MOUSEDOWN_TARGET ) ;
202
211
203
212
// make sure no mousedown is triggered to prevent double triggering of event!
204
- if ( ev . type == 'touchstart' && ( < HTMLElement > ev . target ) . parentNode == domEl ) {
205
- ev . preventDefault ( ) ;
213
+ if ( isTouchStart && ( < HTMLElement > ev . target ) . parentNode == domEl ) {
214
+ skipMouseEvent = true ;
215
+ // ev.preventDefault();
206
216
}
207
217
} ;
208
218
209
219
this . onPointerMove = function ( ev ) {
220
+ const isMouseMove = ev . type == 'mousemove' ;
221
+
222
+ if ( isMouseMove && skipMouseEvent ) {
223
+ return ;
224
+ }
225
+
210
226
let pos ;
211
227
let dx ;
212
228
let dy ;
@@ -227,7 +243,7 @@ export class EventDispatcher {
227
243
isDragged = true ;
228
244
229
245
if ( ! isPointerDown ) {
230
- if ( ev . type != 'touchmove' && (
246
+ if ( isMouseMove && (
231
247
callbacks . isListened ( POINTER_ENTER ) ||
232
248
callbacks . isListened ( POINTER_LEAVE ) ||
233
249
callbacks . isListened ( POINTER_MOVE )
@@ -237,11 +253,8 @@ export class EventDispatcher {
237
253
}
238
254
} else if ( isFeatureDragListened ( ) ) {
239
255
pos = getMousePosition ( domEl , ev ) ;
240
-
241
256
dx = pos [ 0 ] - MOUSEDOWN_POS [ 0 ] ;
242
-
243
257
dy = pos [ 1 ] - MOUSEDOWN_POS [ 1 ] ;
244
-
245
258
callbacks . trigger ( PRESSMOVE , [ createMapEvent ( PRESSMOVE , ev , pos [ 0 ] , pos [ 1 ] , MOUSEDOWN_TARGET ) , dx , dy ] , false ) ;
246
259
}
247
260
} ;
0 commit comments