Index: /CKEditor/trunk/CHANGES.html
===================================================================
--- /CKEditor/trunk/CHANGES.html (revision 5951)
+++ /CKEditor/trunk/CHANGES.html (revision 5952)
@@ -132,5 +132,4 @@
#5839 : "Insert row after" was removing the ids of the elements from the clicked row.
#6315 : DIV plugin TT #2885 regression.
- #5931 : Unable to change nested font-size styles.
Updated the following language files:
- #6246 : Chinese Simplified;
Index: /CKEditor/trunk/_source/plugins/styles/plugin.js
===================================================================
--- /CKEditor/trunk/_source/plugins/styles/plugin.js (revision 5951)
+++ /CKEditor/trunk/_source/plugins/styles/plugin.js (revision 5952)
@@ -484,15 +484,4 @@
var parent = styleRange.getCommonAncestor();
- var removeList = {
- styles : {},
- attrs : {},
- // Styles cannot be removed.
- blockedStyles : {},
- // Attrs cannot be removed.
- blockedAttrs : {}
- };
-
- var attName, styleName, value;
-
// Loop through the parents, removing the redundant attributes
// from the element to be applied.
@@ -501,24 +490,20 @@
if ( parent.getName() == elementName )
{
- for ( attName in def.attributes )
+ for ( var attName in def.attributes )
{
- if ( removeList.blockedAttrs[ attName ] || !( value = parent.getAttribute( styleName ) ) )
- continue;
-
- if ( styleNode.getAttribute( attName ) == value )
- removeList.attrs[ attName ] = 1;
- else
- removeList.blockedAttrs[ attName ] = 1;
+ if ( styleNode.getAttribute( attName ) == parent.getAttribute( attName ) )
+ styleNode.removeAttribute( attName );
}
- for ( styleName in def.styles )
+ for ( var styleName in def.styles )
{
- if ( removeList.blockedStyles[ styleName ] || !( value = parent.getStyle( styleName ) ) )
- continue;
-
- if ( styleNode.getStyle( styleName ) == value )
- removeList.styles[ styleName ] = 1;
- else
- removeList.blockedStyles[ styleName ] = 1;
+ if ( styleNode.getStyle( styleName ) == parent.getStyle( styleName ) )
+ styleNode.removeStyle( styleName );
+ }
+
+ if ( !styleNode.hasAttributes() )
+ {
+ styleNode = null;
+ break;
}
}
@@ -526,13 +511,4 @@
parent = parent.getParent();
}
-
- for ( attName in removeList.attrs )
- styleNode.removeAttribute( attName );
-
- for ( styleName in removeList.styles )
- styleNode.removeStyle( styleName );
-
- if ( !styleNode.hasAttributes() )
- styleNode = null;
if ( styleNode )
@@ -560,13 +536,4 @@
if ( !CKEDITOR.env.ie )
styleNode.$.normalize();
- }
- // Style already inherit from parents, left just to clear up any internal overrides. (#5931)
- else
- {
- styleNode = new CKEDITOR.dom.element( 'span' );
- styleRange.extractContents().appendTo( styleNode );
- styleRange.insertNode( styleNode );
- removeFromInsideElement( this, styleNode );
- styleNode.remove( true );
}
@@ -809,5 +776,5 @@
while ( ( block = iterator.getNextParagraph() ) ) // Only one =
{
- var newBlock = getElement( this, doc, block );
+ var newBlock = getElement( this, doc );
replaceBlock( block, newBlock );
}
@@ -1117,5 +1084,5 @@
}
- function getElement( style, targetDocument, element )
+ function getElement( style, targetDocument )
{
var el;
@@ -1131,8 +1098,4 @@
// Create the element.
el = new CKEDITOR.dom.element( elementName, targetDocument );
-
- // #6226: attributes should be copied before the new ones are applied
- if ( element )
- element.copyAttributes( el );
return setupElement( el, style );
@@ -1359,5 +1322,5 @@
// Bookmark the range so we can re-select it after processing.
bookmarks = selection.createBookmarks(),
- ranges = selection.getRanges( 1 ),
+ ranges = selection.getRanges( true ),
func = remove ? this.removeFromRange : this.applyToRange,
range;