Ticket #4555: 4555.patch

File 4555.patch, 3.2 KB (added by alfonsoml, 2 years ago)

Patch for core

  • _source/core/dom/domobject.js

     
    115115                                        delete nativeListeners[ eventName ]; 
    116116                                } 
    117117                        } 
     118                }, 
     119 
     120                /** @ignore */ 
     121                removeAllListeners : function() 
     122                { 
     123                        // Call the original implementation. 
     124                        CKEDITOR.event.prototype.removeAllListeners.apply( this ); 
     125 
     126                        var nativeListeners = this.getCustomData( '_cke_nativeListeners' ); 
     127                        for( eventName in nativeListeners) 
     128                        { 
     129                                var listener = nativeListeners[ eventName ]; 
     130                                if ( this.$.removeEventListener ) 
     131                                        this.$.removeEventListener( eventName, listener, false ); 
     132                                else if ( this.$.detachEvent ) 
     133                                        this.$.detachEvent( 'on' + eventName, listener ); 
     134 
     135                                delete nativeListeners[ eventName ]; 
     136                        } 
    118137                } 
    119138        }; 
    120139})(); 
  • _source/core/editor.js

     
    469469                                this.updateElement(); 
    470470 
    471471                        this.theme.destroy( this ); 
     472                        delete this.focusManager._.editor; 
     473                        delete this.ui._.editor; 
     474                        this.removeAllListeners(); 
     475 
    472476                        this.fire( 'destroy' ); 
    473477                        CKEDITOR.remove( this ); 
    474478                        CKEDITOR.fire( 'instanceDestroyed', null, this ); 
  • _source/core/event.js

     
    317317                                } 
    318318                        }, 
    319319 
     320                        removeAllListeners : function() 
     321                        { 
     322                                var events = getPrivate( this ); 
     323                                for(e in events) 
     324                                { 
     325                                        delete events[ e ]; 
     326                                } 
     327                        }, 
    320328                        /** 
    321329                         * Checks if there is any listener registered to a given event. 
    322330                         * @param {String} eventName The event name. 
  • _source/themes/default/theme.js

     
    113113                        var container = CKEDITOR.dom.element.createFromHtml( [ 
    114114                                '<span' + 
    115115                                        ' id="cke_', name, '"' + 
    116                                         ' onmousedown="return false;"' + 
    117116                                        ' class="', editor.skinClass, ' cke_editor_', name, '"' + 
    118117                                        ' dir="', editor.lang.dir, '"' + 
    119118                                        ' title="', ( CKEDITOR.env.gecko ? ' ' : '' ), '"' + 
     
    136135                                        '</span>' + 
    137136                                '</span>' ].join( '' ) ); 
    138137 
     138                        container.on('mousedown', function( event ) 
     139                                { 
     140                                        event.data.preventDefault(); 
     141                                } ); 
     142 
    139143                        container.getChild( [1, 0, 0, 0, 0] ).unselectable(); 
    140144                        container.getChild( [1, 0, 0, 0, 2] ).unselectable(); 
    141145 
     
    229233                destroy : function( editor ) 
    230234                { 
    231235                        var container = editor.container; 
     236                        container.removeAllListeners(); 
    232237 
    233238                        /* 
    234239                         * IE BUG: Removing the editor DOM elements while the selection is inside 
     
    254259 
    255260                        if ( container ) 
    256261                                container.remove(); 
     262                        delete editor.container; 
    257263 
    258264                        if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE ) 
    259                         { 
    260265                                editor.element.show(); 
    261                                 delete editor.element; 
    262                         } 
     266 
     267                        delete editor.element; 
    263268                } 
    264269        }; 
    265270})() ); 
© 2003 – 2011 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy