Ticket #4555: 4555.patch

File 4555.patch, 3.2 KB (added by Alfonso Martínez de Lizarrondo, 10 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 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy