JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.2.2
[ckeditor.git] / _source / plugins / contextmenu / plugin.js
index 926333b..b009dee 100644 (file)
@@ -167,7 +167,7 @@ CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass(
                                        }\r
 \r
                                        if ( nativeContextMenuOnCtrl\r
-                                                && ( evt.$.ctrlKey || evt.$.metaKey ) )\r
+                                                && ( CKEDITOR.env.mac ? evt.$.metaKey : evt.$.ctrlKey ) )\r
                                                return;\r
 \r
                                        var target = evt.getTarget();\r
@@ -205,16 +205,9 @@ CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass(
                                        if ( nativeContextMenuOnCtrl &&\r
                                             // Safari on Windows always show 'ctrlKey' as true in 'contextmenu' event,\r
                                                // which make this property unreliable. (#4826)\r
-                                            ( CKEDITOR.env.webkit ? holdCtrlKey : domEvent.$.ctrlKey || domEvent.$.metaKey ) )\r
+                                            ( CKEDITOR.env.webkit ? holdCtrlKey : ( CKEDITOR.env.mac ? domEvent.$.metaKey : domEvent.$.ctrlKey ) ) )\r
                                                return;\r
 \r
-                                       // Selection will be unavailable after context menu shows up\r
-                                       // in IE, lock it now.\r
-                                       if ( CKEDITOR.env.ie )\r
-                                       {\r
-                                               var selection = this.editor.getSelection();\r
-                                               selection && selection.lock();\r
-                                       }\r
 \r
                                        // Cancel the browser context menu.\r
                                        domEvent.preventDefault();\r
@@ -236,7 +229,7 @@ CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass(
                                var holdCtrlKey,\r
                                        onKeyDown = function( event )\r
                                        {\r
-                                               holdCtrlKey = event.data.$.ctrlKey || event.data.$.metaKey;\r
+                                               holdCtrlKey = CKEDITOR.env.mac ? event.data.$.metaKey : event.data.$.ctrlKey ;\r
                                        },\r
                                        resetOnKeyUp = function()\r
                                        {\r
@@ -257,6 +250,15 @@ CKEDITOR.plugins.contextMenu = CKEDITOR.tools.createClass(
                show : function( offsetParent, corner, offsetX, offsetY )\r
                {\r
                        this.editor.focus();\r
+\r
+                       // Selection will be unavailable after context menu shows up\r
+                       // in IE, lock it now.\r
+                       if ( CKEDITOR.env.ie )\r
+                       {\r
+                               var selection = this.editor.getSelection();\r
+                               selection && selection.lock();\r
+                       }\r
+\r
                        this._.onMenu( offsetParent || CKEDITOR.document.getDocumentElement(), corner, offsetX || 0, offsetY || 0 );\r
                }\r
        }\r