X-Git-Url: https://jasonwoof.com/gitweb/?p=ckeditor.git;a=blobdiff_plain;f=_source%2Fplugins%2Fcontextmenu%2Fplugin.js;h=b009dee02344480c88f80fdbbb243358aa9f716b;hp=926333bdf8e3612932f09a59f3f9ed3acb7b9acd;hb=8665a7c6c60586526e32e8941fe2896739b6ebfb;hpb=e7789c1ad838194d45eeee6ac2eb6e55f5cf35a1 diff --git a/_source/plugins/contextmenu/plugin.js b/_source/plugins/contextmenu/plugin.js index 926333b..b009dee 100644 --- a/_source/plugins/contextmenu/plugin.js +++ b/_source/plugins/contextmenu/plugin.js @@ -167,7 +167,7 @@ CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass( } if ( nativeContextMenuOnCtrl - && ( evt.$.ctrlKey || evt.$.metaKey ) ) + && ( CKEDITOR.env.mac ? evt.$.metaKey : evt.$.ctrlKey ) ) return; var target = evt.getTarget(); @@ -205,16 +205,9 @@ CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass( if ( nativeContextMenuOnCtrl && // Safari on Windows always show 'ctrlKey' as true in 'contextmenu' event, // which make this property unreliable. (#4826) - ( CKEDITOR.env.webkit ? holdCtrlKey : domEvent.$.ctrlKey || domEvent.$.metaKey ) ) + ( CKEDITOR.env.webkit ? holdCtrlKey : ( CKEDITOR.env.mac ? domEvent.$.metaKey : domEvent.$.ctrlKey ) ) ) return; - // Selection will be unavailable after context menu shows up - // in IE, lock it now. - if ( CKEDITOR.env.ie ) - { - var selection = this.editor.getSelection(); - selection && selection.lock(); - } // Cancel the browser context menu. domEvent.preventDefault(); @@ -236,7 +229,7 @@ CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass( var holdCtrlKey, onKeyDown = function( event ) { - holdCtrlKey = event.data.$.ctrlKey || event.data.$.metaKey; + holdCtrlKey = CKEDITOR.env.mac ? event.data.$.metaKey : event.data.$.ctrlKey ; }, resetOnKeyUp = function() { @@ -257,6 +250,15 @@ CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass( show : function( offsetParent, corner, offsetX, offsetY ) { this.editor.focus(); + + // Selection will be unavailable after context menu shows up + // in IE, lock it now. + if ( CKEDITOR.env.ie ) + { + var selection = this.editor.getSelection(); + selection && selection.lock(); + } + this._.onMenu( offsetParent || CKEDITOR.document.getDocumentElement(), corner, offsetX || 0, offsetY || 0 ); } }