@@ -37,26 +37,33 @@ export default function ContextMenu({ map, route, queryPoints }: ContextMenuProp
37
37
map . addOverlay ( overlay )
38
38
39
39
const longTouchHandler = new LongTouchHandler ( e => openContextMenu ( e ) )
40
-
40
+ const handleTouchStart = ( e : any ) => longTouchHandler . onTouchStart ( e )
41
+ const handleTouchMove = ( ) => longTouchHandler . onTouchEnd ( )
42
+ const handleTouchEnd = ( ) => longTouchHandler . onTouchEnd ( )
41
43
function onMapTargetChange ( ) {
42
- // it is important to setup new listeners whenever the map target changes, like when we switch between the
44
+ // it is important to set up new listeners whenever the map target changes, like when we switch between the
43
45
// small and large screen layout, see #203
44
46
45
47
// we cannot listen to right-click simply using map.on('contextmenu') and need to add the listener to
46
48
// the map container instead
47
49
// https://github.com/openlayers/openlayers/issues/12512#issuecomment-879403189
48
50
map . getTargetElement ( ) . addEventListener ( 'contextmenu' , openContextMenu )
49
51
50
- map . getTargetElement ( ) . addEventListener ( 'touchstart' , e => longTouchHandler . onTouchStart ( e ) )
51
- map . getTargetElement ( ) . addEventListener ( 'touchmove' , ( ) => longTouchHandler . onTouchEnd ( ) )
52
- map . getTargetElement ( ) . addEventListener ( 'touchend' , ( ) => longTouchHandler . onTouchEnd ( ) )
52
+ map . getTargetElement ( ) . addEventListener ( 'touchstart' , handleTouchStart )
53
+ map . getTargetElement ( ) . addEventListener ( 'touchmove' , handleTouchMove )
54
+ map . getTargetElement ( ) . addEventListener ( 'touchend' , handleTouchEnd )
53
55
54
56
map . getTargetElement ( ) . addEventListener ( 'click' , closeContextMenu )
55
57
}
56
58
map . on ( 'change:target' , onMapTargetChange )
57
59
58
60
return ( ) => {
59
61
map . getTargetElement ( ) . removeEventListener ( 'contextmenu' , openContextMenu )
62
+
63
+ map . getTargetElement ( ) . removeEventListener ( 'touchstart' , handleTouchStart )
64
+ map . getTargetElement ( ) . removeEventListener ( 'touchmove' , handleTouchMove )
65
+ map . getTargetElement ( ) . removeEventListener ( 'touchend' , handleTouchEnd )
66
+
60
67
map . getTargetElement ( ) . removeEventListener ( 'click' , closeContextMenu )
61
68
map . removeOverlay ( overlay )
62
69
map . un ( 'change:target' , onMapTargetChange )
0 commit comments