Index: /CKEditor/branches/versions/3.2.x/CHANGES.html
===================================================================
--- /CKEditor/branches/versions/3.2.x/CHANGES.html (revision 5343)
+++ /CKEditor/branches/versions/3.2.x/CHANGES.html (revision 5344)
@@ -55,7 +55,7 @@
Fixed issues:
- - #5152 : Indentation using classes didn't work properly.
- - #4682 : It wasn't possible to edit elements in IE that had some styles like width, height or float.
- - #4750 : Corrected default order of buttons in dialogs for Mac.
+ - #5152 : Indentation using class attribute doesn't work properly.
+ - #4682 : It wasn't possible to edit block elements in IE that had styles like width, height or float.
+ - #4750 : Correcting default order of buttons layout in dialogs on Mac.
- #4932 : Fixed collapse button not clickable on simple toolbar.
- #5228 : Link dialog is automatically changes protocol when URLs that starts with '?'.
@@ -64,11 +64,11 @@
- #3599 : Background color style on sized text displayed as narrow band behind.
- #4661 : Translation missing in link dialog.
- - #5240 : Flash alignment property is not presented visually.
+ - #5240 : Flash alignment property is not presented visually on fake element.
- #4910 : Pasting in IE scrolls document to the end.
- #5041 : Table summary attribute can't be removed with dialog.
- - #5124 : All inline styles cannot be set separately for empty spaces.
- - #3570 : SCAYT marker should not appear in elementspath bar.
+ - #5124 : All inline styles cannot be applied on empty spaces.
+ - #3570 : SCAYT marker shouldn't appear inside elements path bar.
- #4553 : Dirty check result incorrect when editor document is empty.
- - #4555 : Non-released memory when editor is created and destroyed.
+ - #4555 : Unreleased memory when editor is created and destroyed.
- #5118 : Arrow keys navigation in RTL languages is incorrect.
- #4721 : Remove attribute 'value' of checkbox in IE.
@@ -76,38 +76,38 @@
- #5171 : Dialogs contains lists don't have proper voice labels.
- #4791 : Can't place cusor inside a form that end with a checkbox/radio.
- - #4479 : Style combo doesn't reflect the selection until it's first opened.
+ - #4479 : StylesCombo doesn't reflect the selection state until it's first opened.
- #4717 : 'Unlink' and 'Outdent' command buttons should be disabled on editor startup.
- - #5119 : Disabled command buttons are not being properly marked when focused.
- - #5307 : Hide dialog page cause problem when there's only two remains.
+ - #5119 : Disabled command buttons are not being properly styled when focused.
+ - #5307 : Hide dialog page cause problem when there's two tab pages remain.
- #5343 : Active list item ARIA role is wrongly placed.
- - #3599 : Background color style apply to text with font size been narrowly rendered.
- - #4711 : Line break inside preformatted text make it unable to type text at the end of previous line.
- - #4829 : [IE] Apply style from combo has wrong result on manual created selection.
+ - #3599 : Background color style applying to text with font size style has been narrowly rendered.
+ - #4711 : Line break character inside preformatted text make it unable to type text at the end of previous line.
+ - #4829 : [IE] Apply style from combo has wrong result on manually created selection.
- #4830 : Retrieving selected element isn't always right, especially selecting using keyboard (SHIFT+ARROW).
- - #5128 : Element attribute inside preformatted text is incorrectly corrupted when converting to other blocks.
- - #5190 : Template entry should not gain initial focus in templates list dialog.
+ - #5128 : Element attribute inside preformatted text is corrupted when converting to other blocks.
+ - #5190 : Template list entry shouldn't gain initial focus open templates list dialog opens.
- #5238 : Menu button doesn't display arrow icon in high-contrast mode.
- - #3576 : Non-attributed element of the same name with the applied style is correctly removed.
+ - #3576 : Non-attributed element of the same name with the applied style is incorrectly removed.
- #5221 : Insert table into empty document cause JavaScript error thrown.
- #5242 : Apply 'automatic' color option of text color incorrectly removes background-color style.
- #4719 : IE does not escape attribute values properly.
- - #5170 : Firefox does not insert text into element properly.
+ - #5170 : Firefox does not insert text into styled element properly.
- #4026 : Office2003 skin has no toolbar button borders in High Contrast in IE7.
- - #4348 : There should have exception thrown when 'CKEDITOR_BASEPATH' could be figured out automatically.
- - #5364 : Focus may not put into dialog correctly when dialog skin file is loading slow.
- - #4016 : justify the layout of forms select dialog in Chrome and IE7.
- - #5373 : fix pathBlockElements wrong items in elementpath.js.
+ - #4348 : There should have exception thrown when 'CKEDITOR_BASEPATH' couldn't be figured out automatically.
+ - #5364 : Focus may not be put into dialog correctly when dialog skin file is loading slow.
+ - #4016 : Justify the layout of forms select dialog in Chrome and IE7.
+ - #5373 : Variable 'pathBlockElements' defines wrong items in CKEDITOR.dom.elementPath.
- #5082 : Ctrl key should be described as Cmd key on Mac.
- #5182 : Context menu is not been announced correctly by ATs.
- - #4898 : Can't navigate outside table inside the last paragraph of document.
+ - #4898 : Can't navigate outside table under the last paragraph of document.
- #4950 : List commands could compromise list item attribute and styles.
- - #5018 : Find result highlight remove normal font color styles unintentionally.
- - #5376 : Unable to exit list from within a empty block inside list item.
+ - #5018 : Find result highlighting remove normal font color styles unintentionally.
+ - #5376 : Unable to exit list from within a empty block under list item.
- #5145 : Various SCAYT fixes.
- - #5319 : Match whole word doesn't work after replacement happened.
+ - #5319 : Match whole word doesn't work anymore after replacement has happened.
- #5363 : 'title' attribute now presents on all editor iframes.
- #5374 : Unable to toggle inline style when selection start from the linefeed of the previous paragraph.
- #4513 : Selected link element is not always correctly detected when using keyboard arrows to perform such selection.
- - #5372 : Newly created sub list should not inheirt nothing from the original (parent) list except list type.
+ - #5372 : Newly created sub list should inheirt nothing from the original (parent) list except list type.
- #5274 : [IE6] Templates preview image is displayed in wrong size.
- #5292 : Preview in font size and family doesn't work with custom styles.
@@ -124,4 +124,5 @@
- #5261 : Config option 'scayt_autoStartup' slow down editor loading.
- #3846 : Google Chrome - No Img properties after inserting.
+ - #5465 : ShiftEnter=DIV doesn't respect list item when pressing enter at end of list item.
- Updated the following language files:
- Faroese;
Index: /CKEditor/branches/versions/3.2.x/_source/core/editor.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/core/editor.js (revision 5343)
+++ /CKEditor/branches/versions/3.2.x/_source/core/editor.js (revision 5344)
@@ -506,11 +506,4 @@
CKEDITOR.tools.removeFunction( this._.filebrowserFn );
- items = this.config.elementsPath_filters;
- if ( items )
- {
- for ( index= 0 ; index < items.length ; index++ )
- items[ index ] = null;
- }
-
this.fire( 'destroy' );
CKEDITOR.remove( this );
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/elementspath/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/elementspath/plugin.js (revision 5343)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/elementspath/plugin.js (revision 5344)
@@ -45,5 +45,5 @@
var idBase = 'cke_elementspath_' + CKEDITOR.tools.getNextNumber() + '_';
- editor._.elementsPath = { idBase : idBase };
+ editor._.elementsPath = { idBase : idBase, filters : [] };
editor.on( 'themeSpace', function( event )
@@ -57,15 +57,13 @@
});
- var filters = editor.config.elementsPath_filters;
-
editor.on( 'selectionChange', function( ev )
{
- var env = CKEDITOR.env;
-
- var selection = ev.data.selection;
-
- var element = selection.getStartElement(),
+ var env = CKEDITOR.env,
+ selection = ev.data.selection,
+ element = selection.getStartElement(),
html = [],
- elementsList = this._.elementsPath.list = [];
+ editor = ev.editor,
+ elementsList = editor._.elementsPath.list = []
+ filters = editor._.elementsPath.filters;
while ( element )
@@ -115,7 +113,7 @@
' onfocus="event.preventBubble();"' : '' ) +
' hidefocus="true" ' +
- ' onkeydown="return CKEDITOR._.elementsPath.keydown(\'', this.name, '\',', index, ', event);"' +
+ ' onkeydown="return CKEDITOR._.elementsPath.keydown(\'', editor.name, '\',', index, ', event);"' +
extra ,
- ' onclick="return CKEDITOR._.elementsPath.click(\'', this.name, '\',', index, ');"',
+ ' onclick="return CKEDITOR._.elementsPath.click(\'', editor.name, '\',', index, ');"',
' role="button" aria-labelledby="' + idBase + index + '_label">',
name,
@@ -205,15 +203,2 @@
};
-/**
- * A list of filter functions to determinate whether an element should display in elements path bar.
- * @type Array Array of functions that optionaly return 'false' to prevent the element from displaying.
- * @default []
- * @example
- * // Prevent elements with attribute 'myAttribute' to appear in elements path.
- * editor.config.elementsPath_filters.push( function( element )
- * {
- * if( element.hasAttribute( 'myAttribute') )
- * return false;
- * });
- */
-CKEDITOR.config.elementsPath_filters = [];
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/enterkey/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/enterkey/plugin.js (revision 5343)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/enterkey/plugin.js (revision 5344)
@@ -101,5 +101,6 @@
// a Shift+Enter (#77). Create a new block element instead
// (later in the code).
- if ( !forceMode && !headerTagRegex.test( previousBlock.getName() ) )
+ if ( previousBlock.is( 'li' ) ||
+ !( forceMode || headerTagRegex.test( previousBlock.getName() ) ) )
{
// Otherwise, duplicate the previous block.
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/list/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/list/plugin.js (revision 5343)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/list/plugin.js (revision 5344)
@@ -39,5 +39,5 @@
continue;
- var itemObj = { 'parent' : listNode, indent : baseIndentLevel, element : listItem };
+ var itemObj = { 'parent' : listNode, indent : baseIndentLevel, element : listItem, contents : [] };
if ( !grandparentNode )
{
@@ -55,8 +55,11 @@
for ( var j = 0, itemChildCount = listItem.getChildCount(), child; j < itemChildCount ; j++ )
{
- child = listItem.getChild( j );
- // Push inner list items with +1 indentation in the correct order.
+ var child = listItem.getChild( j );
if ( child.type == CKEDITOR.NODE_ELEMENT && listNodeNames[ child.getName() ] )
+ // Note the recursion here, it pushes inner list items with
+ // +1 indentation in the correct order.
CKEDITOR.plugins.list.listToArray( child, database, baseArray, baseIndentLevel + 1, itemObj.grandparent );
+ else
+ itemObj.contents.push( child );
}
}
@@ -88,5 +91,7 @@
retval.append( rootNode );
}
- currentListItem = rootNode.append( item.element );
+ currentListItem = rootNode.append( item.element.clone( false, true ) );
+ for ( var i = 0 ; i < item.contents.length ; i++ )
+ currentListItem.append( item.contents[i].clone( true, true ) );
currentIndex++;
}
@@ -101,5 +106,5 @@
currentListItem;
if ( listNodeNames[ item.grandparent.getName() ] )
- currentListItem = item.element;
+ currentListItem = item.element.clone( false, true );
else
{
@@ -111,5 +116,6 @@
}
- item.element.moveChildren( currentListItem );
+ for ( i = 0 ; i < item.contents.length ; i++ )
+ currentListItem.append( item.contents[i].clone( true, true ) );
if ( currentListItem.type == CKEDITOR.NODE_DOCUMENT_FRAGMENT
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/pagebreak/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/pagebreak/plugin.js (revision 5343)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/pagebreak/plugin.js (revision 5344)
@@ -94,4 +94,9 @@
range.splitBlock( 'p' );
range.insertNode( breakObject );
+ if ( i == ranges.length - 1 )
+ {
+ range.moveToPosition( breakObject, CKEDITOR.POSITION_AFTER_END );
+ range.select();
+ }
}
}
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/scayt/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/scayt/plugin.js (revision 5343)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/scayt/plugin.js (revision 5344)
@@ -622,8 +622,11 @@
});
}
-
+ },
+
+ afterInit : function( editor )
+ {
// Prevent word marker line from displaying in elements path. (#3570)
var elementsPathFilters;
- if ( ( elementsPathFilters = editor.config.elementsPath_filters ) )
+ if ( editor._.elementsPath && ( elementsPathFilters = editor._.elementsPath.filters ) )
{
elementsPathFilters.push( function( element )
Index: /CKEditor/branches/versions/3.2.x/_source/plugins/styles/plugin.js
===================================================================
--- /CKEditor/branches/versions/3.2.x/_source/plugins/styles/plugin.js (revision 5343)
+++ /CKEditor/branches/versions/3.2.x/_source/plugins/styles/plugin.js (revision 5344)
@@ -1,3 +1,3 @@
-/*
+/*
Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
@@ -142,18 +142,20 @@
// Removes any conflicting styles from within the specified range..
- removeConflictsFromRange : function ( range )
+ removeConflictsFromRange : function ( range, nodeToPreserve )
{
var style = this,
- overrides = getOverrides( style ),
- styleCandidates = [],
- overrideCandidates = [];
+ overrides = getOverrides( style ),
+ styleCandidates = [],
+ overrideCandidates = [];
var walker = new CKEDITOR.dom.walker( range );
walker.evaluator = function( node )
{
- if ( node.type == CKEDITOR.NODE_ELEMENT )
+ if ( node.type == CKEDITOR.NODE_ELEMENT
+ && ( !nodeToPreserve || !node.equals( nodeToPreserve ) ) )
{
if ( node.is( style.element ) )
styleCandidates.push( node );
+
if ( node.getName() in overrides )
overrideCandidates.push( node );
@@ -408,10 +410,4 @@
range.enlarge( CKEDITOR.ENLARGE_ELEMENT );
range.trim();
-
- // Remove all style conflictions within the range,
- // e.g. style="color:red" is conflicting with style="color:blue".
- var enlargedBookmark = range.createBookmark();
- this.removeConflictsFromRange( range );
- range.moveToBookmark( enlargedBookmark );
// Get the first node to be processed and the last, which concludes the
@@ -580,6 +576,11 @@
// Insert it into the range position (it is collapsed after
- // extractContents.
+ // extractContents).
styleRange.insertNode( styleNode );
+
+ // Remove all style conflicts within the range, including
+ // parents boundaries touched by styleNode.
+ styleRange.enlarge( CKEDITOR.ENLARGE_ELEMENT );
+ this.removeConflictsFromRange( styleRange, styleNode );
// Let's merge our new style with its neighbors, if possible.