Changeset 5265


Ignore:
Timestamp:
03/22/2010 05:04:40 PM (5 years ago)
Author:
garry.yao
Message:

#5242: More robust way of removing styles with same property name.

Location:
CKEditor/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/CHANGES.html

    r5263 r5265  
    8383                <li><a href="http://dev.fckeditor.net/ticket/3576">#3576</a> : Non-attributed element of the same name with the applied style is correctly removed.</li> 
    8484                <li><a href="http://dev.fckeditor.net/ticket/5221">#5221</a> : Insert table into empty document cause JavaScript error thrown.</li> 
     85                <li><a href="http://dev.fckeditor.net/ticket/5242">#5242</a> : Apply 'automatic' color option of text color incorrectly removes background-color style.</li> 
    8586        </ul> 
    8687        <h3> 
  • CKEditor/trunk/_source/plugins/colorbutton/plugin.js

    r5230 r5265  
    8787                                        panel.hide(); 
    8888 
    89                                         var style = new CKEDITOR.style( config['colorButton_' + type + 'Style'], color && { color : color } ); 
     89                                        var style = new CKEDITOR.style( config['colorButton_' + type + 'Style'], { color : color || 'inherit' } ); 
    9090 
    9191                                        editor.fire( 'saveSnapshot' ); 
  • CKEditor/trunk/_source/plugins/styles/plugin.js

    r5260 r5265  
    1 /* 
     1/* 
    22Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved. 
    33For licensing, see LICENSE.html or http://ckeditor.com/license 
     
    252252 
    253253                                                var elementAttr = element.getAttribute( attName ) || ''; 
    254                                                 if ( attribs[ attName ] == 
    255                                                          ( attName == 'style' ? 
    256                                                            normalizeCssText( elementAttr, false ) : elementAttr  ) ) 
     254                                                if ( attName == 'style' ? 
     255                                                        compareCssText( attribs[ attName ], normalizeCssText( elementAttr, false ) )  
     256                                                        : attribs[ attName ] == elementAttr ) 
    257257                                                { 
    258258                                                        if ( !fullMatch ) 
     
    12311231                                                         .toLowerCase(); 
    12321232        } 
     1233         
     1234        // Turn inline style text properties into one hash. 
     1235        function parseStyleText( styleText ) 
     1236        { 
     1237                var retval = {}; 
     1238                styleText 
     1239                   .replace( /&quot;/g, '"' ) 
     1240                   .replace( /\s*([^ :;]+)\s*:\s*([^;]+)\s*(?=;|$)/g, function( match, name, value ) 
     1241                { 
     1242                        retval[ name ] = value; 
     1243                } ); 
     1244                return retval; 
     1245        } 
     1246 
     1247        function compareCssText( source, target ) 
     1248        { 
     1249                typeof source == 'string' && ( source = parseStyleText( source ) ); 
     1250                typeof target == 'string' && ( target = parseStyleText( target ) ); 
     1251                for( var name in source ) 
     1252                { 
     1253                        // Value 'inheirt'  is treated as a wildcard, 
     1254                        // which will matches any value.    
     1255                        if ( !( name in target && 
     1256                                        ( target[ name ] == source[ name ] 
     1257                                                || source[ name ] == 'inherit' 
     1258                                                || target[ name ] == 'inherit' ) ) ) 
     1259                        { 
     1260                                return false; 
     1261                        } 
     1262                } 
     1263                return true; 
     1264        } 
    12331265 
    12341266        function applyStyle( document, remove ) 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy