Ticket #2932: 2932_2.patch

File 2932_2.patch, 2.4 KB (added by Frederico Caldeira Knabben, 12 years ago)
  • _source/core/event.js

     
    216216
    217217                                        if ( event )
    218218                                        {
    219                                                 // Loop through all listeners.
    220                                                 for ( var i = 0, listeners = event.listeners ; i < listeners.length ; i++ )
     219                                                var listeners = event.listeners;
     220
     221                                                if ( listeners.length )
    221222                                                {
    222                                                         // Call the listener, passing the event data.
    223                                                         var retData = listeners[i].call( this, editor, data, stopEvent, cancelEvent );
     223                                                        // As some listeners may remove themselves from the
     224                                                        // event, the original array length is dinamic. So,
     225                                                        // let's make a copy of all listeners, so we are
     226                                                        // sure we'll call all of them.
     227                                                        listeners = listeners.slice( 0 );
    224228
    225                                                         if ( typeof retData != 'undefined' )
    226                                                                 data = retData;
     229                                                        // Loop through all listeners.
     230                                                        for ( var i = 0 ; i < listeners.length ; i++ )
     231                                                        {
     232                                                                // Call the listener, passing the event data.
     233                                                                var retData = listeners[i].call( this, editor, data, stopEvent, cancelEvent );
    227234
    228                                                         // No further calls is stopped or canceled.
    229                                                         if ( stopped || canceled )
    230                                                                 break;
     235                                                                if ( typeof retData != 'undefined' )
     236                                                                        data = retData;
     237
     238                                                                // No further calls is stopped or canceled.
     239                                                                if ( stopped || canceled )
     240                                                                        break;
     241                                                        }
    231242                                                }
    232243                                        }
    233244
  • _source/plugins/editingblock/plugin.js

     
    4747
    4848                        editor.on( 'afterSetData', function()
    4949                                {
    50                                         if ( !isHandlingData && editor.mode )
     50                                        if ( !isHandlingData )
    5151                                        {
    52                                                 isHandlingData = true;
    53                                                 getMode( editor ).loadData( editor.getData() );
    54                                                 isHandlingData = false;
     52                                                function setData()
     53                                                {
     54                                                        isHandlingData = true;
     55                                                        getMode( editor ).loadData( editor.getData() );
     56                                                        isHandlingData = false;
     57                                                }
     58
     59                                                if ( editor.mode )
     60                                                        setData();
     61                                                else
     62                                                {
     63                                                        editor.on( 'mode', function()
     64                                                                {
     65                                                                        setData();
     66                                                                        editor.removeListener( 'mode', arguments.callee );
     67                                                                });
     68                                                }
    5569                                        }
    5670                                });
    5771
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy