Index: _source/plugins/panel/plugin.js =================================================================== --- _source/plugins/panel/plugin.js (revision 4162) +++ _source/plugins/panel/plugin.js (working copy) @@ -253,6 +253,10 @@ this.keys = {}; this._.focusIndex = -1; + + // Disable context menu for panels. + if ( CKEDITOR.plugins.contextMenu ) + CKEDITOR.plugins.contextMenu.prototype.addDisabledTarget( this.element ); }, _ : {}, Index: _source/plugins/sourcearea/plugin.js =================================================================== --- _source/plugins/sourcearea/plugin.js (revision 4162) +++ _source/plugins/sourcearea/plugin.js (working copy) @@ -36,6 +36,7 @@ tabIndex : -1 }); textarea.addClass( 'cke_source' ); + textarea.addClass( 'cke_enable_context_menu' ); var styles = { Index: _source/plugins/contextmenu/plugin.js =================================================================== --- _source/plugins/contextmenu/plugin.js (revision 4162) +++ _source/plugins/contextmenu/plugin.js (working copy) @@ -35,6 +35,13 @@ editor.execCommand( commandName ); }, this); + + // Disable context menu for top and bottom editor's UI parts. + var self = this; + editor.on( 'themeLoaded', function() + { + self.addDisabledTarget( this.container ); + } ); }, _ : @@ -147,6 +154,16 @@ this ); }, + addDisabledTarget : function( element ) + { + element.on( 'contextmenu', function( event ) + { + // Cancel the browser context menu. + if ( !event.data.getTarget().hasClass( 'cke_enable_context_menu' ) ) + event.data.preventDefault(); + } ); + }, + addListener : function( listenerFn ) { this._.listeners.push( listenerFn ); Index: CHANGES.html =================================================================== --- CHANGES.html (revision 4162) +++ CHANGES.html (working copy) @@ -48,6 +48,7 @@