Ticket #3373: 3373_4.patch

File 3373_4.patch, 1.3 KB (added by Garry Yao, 9 years ago)
  • _source/plugins/contextmenu/plugin.js

     
    119119                                }
    120120                        }
    121121
    122                         menu.show( offsetParent, corner || ( editor.lang.dir == 'rtl' ? 2 : 1 ), offsetX, offsetY );
     122                        var hasItems = !!menu.items.length;
     123
     124                        // Don't show context menu with zero items.
     125                        hasItems && setTimeout( function ()
     126                        {
     127                                menu.show( offsetParent, corner || ( editor.lang.dir == 'rtl' ? 2 : 1 ), offsetX, offsetY );
     128                        }, 0 );
     129
     130                        return hasItems;
    123131                }
    124132        },
    125133
     
    131139                                {
    132140                                        var domEvent = event.data;
    133141
    134                                         // Cancel the browser context menu.
    135                                         domEvent.preventDefault();
    136142
    137143                                        var offsetParent = domEvent.getTarget().getDocument().getDocumentElement(),
    138144                                                offsetX = domEvent.$.clientX,
    139145                                                offsetY = domEvent.$.clientY;
    140146
    141                                         CKEDITOR.tools.setTimeout( function()
    142                                                 {
    143                                                         this._.onMenu( offsetParent, null, offsetX, offsetY );
    144                                                 },
    145                                                 0, this );
    146                                 },
     147                                        // Cancel the browser context menu only if our menu is actually shown.
     148                                        if( this._.onMenu( offsetParent, null, offsetX, offsetY ) )
     149                                                domEvent.preventDefault();
     150                                },
    147151                                this );
    148152                },
    149153
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy