Changeset 3704


Ignore:
Timestamp:
06/19/2009 11:24:28 AM (5 years ago)
Author:
martinkou
Message:

Fixed #3758 : Dialog definition objects are now functionally independent for each editor.

Location:
CKEditor/trunk/_source
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/_source/core/tools.js

    r3477 r3704  
    3939                /** 
    4040                 * Creates a deep copy of an object. 
    41                  * Attention: there is no support for deep copy of Array properties and 
    42                  * for recursive references. 
     41                 * Attention: there is no support for recursive references. 
    4342                 * @param {Object} object The object to be cloned. 
    4443                 * @returns {Object} The object clone. 
     
    6160                 * alert( clone.cars.Porsche.color );   // silver 
    6261                 */ 
    63                 clone : function( object ) 
    64                 { 
    65                         if( object === null || typeof( object ) != 'object') 
    66                                 return object; 
    67  
    68                         var clone = new object.constructor(); 
    69  
    70                         for ( var propertyName in object ) 
    71                         { 
    72                                 var property = object[ propertyName ]; 
     62                clone : function( obj ) 
     63                { 
     64                        var clone; 
     65 
     66                        // Array. 
     67                        if ( obj && ( obj instanceof Array ) ) 
     68                        { 
     69                                clone = []; 
     70                                 
     71                                for ( var i = 0 ; i < obj.length ; i++ ) 
     72                                        clone[ i ] = this.clone( obj[ i ] ); 
     73                                 
     74                                return clone; 
     75                        } 
     76 
     77                        // "Static" types. 
     78                        if ( obj === null  
     79                                || ( typeof( obj ) != 'object' ) 
     80                                || ( obj instanceof String ) 
     81                                || ( obj instanceof Number ) 
     82                                || ( obj instanceof Boolean ) 
     83                                || ( obj instanceof Date ) ) 
     84                        { 
     85                                return obj; 
     86                        } 
     87 
     88                        // Objects. 
     89                        clone = new obj.constructor(); 
     90 
     91                        for ( var propertyName in obj ) 
     92                        { 
     93                                var property = obj[ propertyName ]; 
    7394                                clone[ propertyName ] = this.clone( property ); 
    7495                        } 
  • CKEditor/trunk/_source/plugins/dialog/plugin.js

    r3689 r3704  
    9898                // Completes the definition with the default values. 
    9999                definition = CKEDITOR.tools.extend( definition( editor ), defaultDialogDefinition ); 
     100 
     101                // Clone a functionally independent copy for this dialog. 
     102                definition = CKEDITOR.tools.clone( definition ); 
    100103 
    101104                // Create a complex definition object, extending it with the API 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy