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