@@ -122,7 +122,17 @@ var cxtmenu = function cxtmenu(params) {
122
122
setStyles ( wrapper , {
123
123
position : 'absolute' ,
124
124
zIndex : options . zIndex ,
125
- userSelect : 'none'
125
+ userSelect : 'none' ,
126
+ pointerEvents : 'none' // prevent events on menu in modern browsers
127
+ } ) ;
128
+
129
+ // prevent events on menu in legacy browsers
130
+ [ 'mousedown' , 'mousemove' , 'mouseup' , 'contextmenu' ] . forEach ( function ( evt ) {
131
+ wrapper . addEventListener ( evt , function ( e ) {
132
+ e . preventDefault ( ) ;
133
+
134
+ return false ;
135
+ } ) ;
126
136
} ) ;
127
137
128
138
setStyles ( parent , {
@@ -188,7 +198,7 @@ var cxtmenu = function cxtmenu(params) {
188
198
setStyles ( content , command . contentStyle || { } ) ;
189
199
190
200
if ( command . disabled === true || command . enabled === false ) {
191
- content . classList . add ( ' cxtmenu-disabled') ;
201
+ content . setAttribute ( 'class' , 'cxtmenu-content cxtmenu-disabled') ;
192
202
}
193
203
194
204
parent . appendChild ( item ) ;
@@ -317,8 +327,8 @@ var cxtmenu = function cxtmenu(params) {
317
327
318
328
function updatePixelRatio ( ) {
319
329
var pxr = getPixelRatio ( ) ;
320
- var w = container . clientWidth ;
321
- var h = container . clientHeight ;
330
+ var w = containerSize ;
331
+ var h = containerSize ;
322
332
323
333
canvas . width = w * pxr ;
324
334
canvas . height = h * pxr ;
@@ -332,7 +342,11 @@ var cxtmenu = function cxtmenu(params) {
332
342
333
343
var redrawing = true ;
334
344
var redrawQueue = { } ;
335
- var raf = window . requestAnimationFrame || window . webkitRequestAnimationFrame || window . mozRequestAnimationFrame ;
345
+
346
+ var raf = window . requestAnimationFrame || window . webkitRequestAnimationFrame || window . mozRequestAnimationFrame || window . msRequestAnimationFrame || function ( fn ) {
347
+ return setTimeout ( fn , 16 ) ;
348
+ } ;
349
+
336
350
var redraw = function redraw ( ) {
337
351
if ( redrawQueue . drawBg ) {
338
352
drawBg . apply ( null , redrawQueue . drawBg ) ;
@@ -632,7 +646,9 @@ module.exports = Object.assign != null ? Object.assign.bind(Object) : function (
632
646
srcs [ _key - 1 ] = arguments [ _key ] ;
633
647
}
634
648
635
- srcs . forEach ( function ( src ) {
649
+ srcs . filter ( function ( src ) {
650
+ return src != null ;
651
+ } ) . forEach ( function ( src ) {
636
652
Object . keys ( src ) . forEach ( function ( k ) {
637
653
return tgt [ k ] = src [ k ] ;
638
654
} ) ;
@@ -691,9 +707,13 @@ module.exports = defaults;
691
707
var removeEles = function removeEles ( query ) {
692
708
var ancestor = arguments . length > 1 && arguments [ 1 ] !== undefined ? arguments [ 1 ] : document ;
693
709
694
- ancestor . querySelectorAll ( query ) . forEach ( function ( el ) {
695
- return el . parentNode . removeChild ( el ) ;
696
- } ) ;
710
+ var els = ancestor . querySelectorAll ( query ) ;
711
+
712
+ for ( var i = 0 ; i < els . length ; i ++ ) {
713
+ var el = els [ i ] ;
714
+
715
+ el . parentNode . removeChild ( el ) ;
716
+ }
697
717
} ;
698
718
699
719
var setStyles = function setStyles ( el , style ) {
0 commit comments