Changeset 4473


Ignore:
Timestamp:
11/12/2009 09:48:09 PM (6 years ago)
Author:
tobiasz.cudnik
Message:

Updating #4210 branch (features/4210) with missing review fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/branches/features/4210/3.1.x/_source/adapters/jquery.js

    r4469 r4473  
    107107                        {
    108108                                var $element = jQuery( this ),
    109                                         instance = $element.data( 'ckeditorInstance' ),
     109                                        editor = $element.data( 'ckeditorInstance' ),
     110                                        instanceLock = $element.data( '_ckeditorInstanceLock' ),
    110111                                        element = this;
    111112
    112                                 if ( instance )
     113                                if ( editor && !instanceLock )
    113114                                {
    114115                                        if ( callback )
    115                                                 callback.apply( instance, [ this ] );
     116                                                callback.apply( editor, [ this ] );
    116117                                }
    117                                 else if ( $element.data( '_ckeditorInstanceLock' ) )
    118                                 {
    119                                         // Editor is already during creation process, bind our code to the event.
    120                                         CKEDITOR.on( 'instanceReady', function( event )
     118                                else if ( !instanceLock )
     119                                {
     120                                        // CREATE NEW INSTANCE
     121
     122                                        // Handle config.autoUpdateElement inside this plugin if desired.
     123                                        if ( config.autoUpdateElement
     124                                                || ( typeof config.autoUpdateElement == 'undefined' && CKEDITOR.config.autoUpdateElement ) )
     125                                        {
     126                                                config.autoUpdateElementJquery = true;
     127                                        }
     128
     129                                        // Always disable config.autoUpdateElement.
     130                                        config.autoUpdateElement = false;
     131                                        $element.data( '_ckeditorInstanceLock', true );
     132
     133                                        // Set instance reference in element's data.
     134                                        editor = CKEDITOR.replace( element, config );
     135                                        $element.data( 'ckeditorInstance', editor );
     136
     137                                        // Register callback.
     138                                        editor.on( 'instanceReady', function( event )
    121139                                        {
    122140                                                var editor = event.editor;
     
    126144                                                        if ( !editor.element )
    127145                                                                return setTimeout( arguments.callee, 100 );
    128 
    129                                                         if ( editor.element.$ == element )
    130                                                         {
    131                                                                 // Run given code.
    132                                                                 if ( callback )
    133                                                                         callback.apply( editor, [ element ] );
    134                                                         }
    135                                                 }, 0 );
    136                                         }, null, null, 9999);
    137                                 }
    138                                 else
    139                                 {
    140                                         // CREATE NEW INSTANCE
    141                                         // Register callback.
    142                                         CKEDITOR.on( 'instanceReady', function( event )
    143                                         {
    144                                                 var editor = event.editor;
    145                                                 setTimeout( function()
    146                                                 {
    147                                                         // Delay bit more if editor is still not ready.
    148                                                         if ( !editor.element )
    149                                                                 return setTimeout( arguments.callee, 100 );
    150 
    151                                                         if ( editor.element.$ != element )
    152                                                                 return;
    153146
    154147                                                        // Remove this listener.
     
    167160
    168161                                                        // Forward destroy event.
    169                                                         editor.on( 'destroy', function( event )
     162                                                        editor.on( 'destroy', function()
    170163                                                        {
    171164                                                                $element.trigger( 'destroy.ckeditor', [ editor ] );
     
    193186                                                        }
    194187
    195                                                         // Set instance reference in element's data.
    196                                                         $element.data( 'ckeditorInstance', editor );
    197 
    198188                                                        // Garbage collect on destroy.
    199189                                                        editor.on( 'destroy', function()
     
    213203                                                }, 0 );
    214204                                        }, null, null, 9999);
    215 
    216                                         // Trigger instance creation.
    217 
    218                                         // Handle config.autoUpdateElement inside this plugin if desired.
    219                                         if ( config.autoUpdateElement
    220                                                 || ( typeof config.autoUpdateElement == 'undefined' && CKEDITOR.config.autoUpdateElement ) )
    221                                         {
    222                                                 config.autoUpdateElementJquery = true;
    223                                         }
    224 
    225                                         // Always disable config.autoUpdateElement.
    226                                         config.autoUpdateElement = false;
    227                                         $element.data( '_ckeditorInstanceLock', true );
    228                                         CKEDITOR.replace( element, config );
     205                                }
     206                                else
     207                                {
     208                                        // Editor is already during creation process, bind our code to the event.
     209                                        CKEDITOR.on( 'instanceReady', function( event )
     210                                        {
     211                                                var editor = event.editor;
     212                                                setTimeout( function()
     213                                                {
     214                                                        // Delay bit more if editor is still not ready.
     215                                                        if ( !editor.element )
     216                                                                return setTimeout( arguments.callee, 100 );
     217
     218                                                        if ( editor.element.$ == element )
     219                                                        {
     220                                                                // Run given code.
     221                                                                if ( callback )
     222                                                                        callback.apply( editor, [ element ] );
     223                                                        }
     224                                                }, 0 );
     225                                        }, null, null, 9999);
    229226                                }
    230227                        });
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy