File tree Expand file tree Collapse file tree 2 files changed +11
-5
lines changed Expand file tree Collapse file tree 2 files changed +11
-5
lines changed Original file line number Diff line number Diff line change @@ -23,20 +23,22 @@ window.contextmenu = function (bindElement, contextmenuElement) {
23
23
24
24
let isParent = function ( element , parentElement ) {
25
25
do if ( element === parentElement ) return true ;
26
- while ( document != ( element = element . parentNode ) )
26
+ while ( element !== null && document != ( element = element . parentNode ) )
27
27
return false ;
28
28
}
29
29
30
30
let _closeContextmenu = function ( e ) {
31
- if ( _getContextmenuState ( ) && ! isParent ( e . target , contextmenuElement ) ) {
31
+ if ( _getContextmenuState ( ) && ! isParent ( e . target , contextmenuElement ) ) {
32
+ e . stopPropagation ( ) ;
33
+ e . preventDefault ( ) ;
32
34
contextmenuElement . style . display = 'none' ;
33
- if ( e . type === 'click' ) e . stopPropagation ( ) ;
34
35
}
35
36
}
36
37
37
38
window . addEventListener ( 'click' , _closeContextmenu , true ) ;
38
39
window . addEventListener ( 'contextmenu' , _closeContextmenu , true ) ;
39
40
window . addEventListener ( 'scroll' , _closeContextmenu , true ) ;
41
+ window . addEventListener ( 'touchmove' , _closeContextmenu , true ) ;
40
42
41
43
42
44
bindElement . oncontextmenu = function ( e ) {
Original file line number Diff line number Diff line change @@ -52,22 +52,26 @@ class Contextmenu {
52
52
53
53
let isParent = ( element , parentElement ) => {
54
54
do if ( element === parentElement ) return true ;
55
- while ( document != ( element = element . parentNode ) )
55
+ while ( element !== null && document != ( element = element . parentNode ) )
56
56
return false ;
57
57
}
58
58
59
59
let _closeContextmenu = function ( e ) {
60
60
if ( _getContextmenuState ( ) && ! isParent ( e . target , element ) ) {
61
+ e . stopPropagation ( ) ;
62
+ e . preventDefault ( ) ;
61
63
element . style . display = 'none' ;
62
64
if ( pause ) element . bulletScreenEvent . setPlayState ( true ) ;
63
65
element . bulletScreenEvent . setBulletScreen ( { _contextmenu : false } , false ) ;
64
66
element . bulletScreenEvent = null ;
65
- if ( e . type === 'click' ) e . stopPropagation ( ) ;
66
67
}
67
68
}
69
+
68
70
window . addEventListener ( 'click' , _closeContextmenu , true ) ;
69
71
window . addEventListener ( 'contextmenu' , _closeContextmenu , true ) ;
70
72
window . addEventListener ( 'scroll' , _closeContextmenu , true ) ;
73
+ window . addEventListener ( 'touchmove' , _closeContextmenu , true ) ;
74
+
71
75
72
76
generalEngine . bind ( 'contextmenu' , function ( e ) {
73
77
e . setBulletScreen ( { layer : layer , _contextmenu : true } , layer != null ) ;
You can’t perform that action at this time.
0 commit comments