Ticket #4826: 4826_2.patch

File 4826_2.patch, 1.3 KB (added by Garry Yao, 10 years ago)
  • _source/plugins/contextmenu/plugin.js

     
    183183                                {
    184184                                        var domEvent = event.data;
    185185
    186                                         if ( nativeContextMenuOnCtrl
    187                                                  && ( domEvent.$.ctrlKey || domEvent.$.metaKey ) )
     186                                        if ( nativeContextMenuOnCtrl &&
     187                                             // Safari on Windows always show 'ctrlKey' as true in 'contextmenu' event,
     188                                                // which make this property unreliable. (#4826)   
     189                                             ( CKEDITOR.env.webkit ? holdCtrlKey : domEvent.$.ctrlKey || domEvent.$.metaKey ) )
    188190                                                return;
    189191
    190192                                        // Cancel the browser context menu.
     
    201203                                                0, this );
    202204                                },
    203205                                this );
    204                 },
     206
     207                        if( CKEDITOR.env.webkit )
     208                        {
     209                                var holdCtrlKey,
     210                                        onKeyDown = function( event )
     211                                        {
     212                                                holdCtrlKey = event.data.$.ctrlKey || event.data.$.metaKey;
     213                                        },
     214                                        resetOnKeyUp = function()
     215                                        {
     216                                                holdCtrlKey = 0;
     217                                        };
    205218
     219                                element.on( 'keydown', onKeyDown );
     220                                element.on( 'keyup', resetOnKeyUp );
     221                                element.on( 'contextmenu', resetOnKeyUp );
     222                        }
     223                },
     224
    206225                addListener : function( listenerFn )
    207226                {
    208227                        this._.listeners.push( listenerFn );
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy