Got questions, comments, patches, etc.?
Contact Jason Woofenden
gitweb
/
ckeditor.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
vanilla ckeditor-3.6.1
[ckeditor.git]
/
_source
/
plugins
/
list
/
plugin.js
diff --git
a/_source/plugins/list/plugin.js
b/_source/plugins/list/plugin.js
index
be10d0d
..
bc28e51
100644
(file)
--- a/
_source/plugins/list/plugin.js
+++ b/
_source/plugins/list/plugin.js
@@
-87,11
+87,14
@@
For licensing, see LICENSE.html or http://ckeditor.com/license
currentIndex = baseIndex,
\r
indentLevel = Math.max( listArray[ baseIndex ].indent, 0 ),
\r
currentListItem = null,
\r
currentIndex = baseIndex,
\r
indentLevel = Math.max( listArray[ baseIndex ].indent, 0 ),
\r
currentListItem = null,
\r
- itemDir,
\r
+ orgDir,
\r
paragraphName = ( paragraphMode == CKEDITOR.ENTER_P ? 'p' : 'div' );
\r
while ( 1 )
\r
{
\r
var item = listArray[ currentIndex ];
\r
paragraphName = ( paragraphMode == CKEDITOR.ENTER_P ? 'p' : 'div' );
\r
while ( 1 )
\r
{
\r
var item = listArray[ currentIndex ];
\r
+
\r
+ orgDir = item.element.getDirection( 1 );
\r
+
\r
if ( item.indent == indentLevel )
\r
{
\r
if ( !rootNode || listArray[ currentIndex ].parent.getName() != rootNode.getName() )
\r
if ( item.indent == indentLevel )
\r
{
\r
if ( !rootNode || listArray[ currentIndex ].parent.getName() != rootNode.getName() )
\r
@@
-101,6
+104,12
@@
For licensing, see LICENSE.html or http://ckeditor.com/license
retval.append( rootNode );
\r
}
\r
currentListItem = rootNode.append( item.element.clone( 0, 1 ) );
\r
retval.append( rootNode );
\r
}
\r
currentListItem = rootNode.append( item.element.clone( 0, 1 ) );
\r
+
\r
+ if ( orgDir != rootNode.getDirection( 1 ) )
\r
+ currentListItem.setAttribute( 'dir', orgDir );
\r
+ else
\r
+ currentListItem.removeAttribute( 'dir' );
\r
+
\r
for ( var i = 0 ; i < item.contents.length ; i++ )
\r
currentListItem.append( item.contents[i].clone( 1, 1 ) );
\r
currentIndex++;
\r
for ( var i = 0 ; i < item.contents.length ; i++ )
\r
currentListItem.append( item.contents[i].clone( 1, 1 ) );
\r
currentIndex++;
\r
@@
-108,8
+117,7
@@
For licensing, see LICENSE.html or http://ckeditor.com/license
else if ( item.indent == Math.max( indentLevel, 0 ) + 1 )
\r
{
\r
// Maintain original direction (#6861).
\r
else if ( item.indent == Math.max( indentLevel, 0 ) + 1 )
\r
{
\r
// Maintain original direction (#6861).
\r
- var orgDir = item.element.getDirection( 1 ),
\r
- currDir = listArray[ currentIndex - 1 ].element.getDirection( 1 ),
\r
+ var currDir = listArray[ currentIndex - 1 ].element.getDirection( 1 ),
\r
listData = CKEDITOR.plugins.list.arrayToList( listArray, null, currentIndex, paragraphMode,
\r
currDir != orgDir ? orgDir: null );
\r
\r
listData = CKEDITOR.plugins.list.arrayToList( listArray, null, currentIndex, paragraphMode,
\r
currDir != orgDir ? orgDir: null );
\r
\r
@@
-124,12
+132,7
@@
For licensing, see LICENSE.html or http://ckeditor.com/license
else if ( item.indent == -1 && !baseIndex && item.grandparent )
\r
{
\r
if ( listNodeNames[ item.grandparent.getName() ] )
\r
else if ( item.indent == -1 && !baseIndex && item.grandparent )
\r
{
\r
if ( listNodeNames[ item.grandparent.getName() ] )
\r
- {
\r
currentListItem = item.element.clone( false, true );
\r
currentListItem = item.element.clone( false, true );
\r
- itemDir = item.element.getDirection( 1 );
\r
- item.grandparent.getDirection( 1 ) != itemDir &&
\r
- currentListItem.setAttribute( 'dir', itemDir );
\r
- }
\r
else
\r
{
\r
// Create completely new blocks here.
\r
else
\r
{
\r
// Create completely new blocks here.
\r
@@
-137,9
+140,6
@@
For licensing, see LICENSE.html or http://ckeditor.com/license
{
\r
currentListItem = doc.createElement( paragraphName );
\r
item.element.copyAttributes( currentListItem, { type:1, value:1 } );
\r
{
\r
currentListItem = doc.createElement( paragraphName );
\r
item.element.copyAttributes( currentListItem, { type:1, value:1 } );
\r
- itemDir = item.element.getDirection() || dir;
\r
- itemDir &&
\r
- currentListItem.setAttribute( 'dir', itemDir );
\r
\r
// There might be a case where there are no attributes in the element after all
\r
// (i.e. when "type" or "value" are the only attributes set). In this case, if enterMode = BR,
\r
\r
// There might be a case where there are no attributes in the element after all
\r
// (i.e. when "type" or "value" are the only attributes set). In this case, if enterMode = BR,
\r
@@
-151,6
+151,14
@@
For licensing, see LICENSE.html or http://ckeditor.com/license
currentListItem = new CKEDITOR.dom.documentFragment( doc );
\r
}
\r
\r
currentListItem = new CKEDITOR.dom.documentFragment( doc );
\r
}
\r
\r
+ if ( currentListItem.type == CKEDITOR.NODE_ELEMENT )
\r
+ {
\r
+ if ( item.grandparent.getDirection( 1 ) != orgDir )
\r
+ currentListItem.setAttribute( 'dir', orgDir );
\r
+ else
\r
+ currentListItem.removeAttribute( 'dir' );
\r
+ }
\r
+
\r
for ( i = 0 ; i < item.contents.length ; i++ )
\r
currentListItem.append( item.contents[i].clone( 1, 1 ) );
\r
\r
for ( i = 0 ; i < item.contents.length ; i++ )
\r
currentListItem.append( item.contents[i].clone( 1, 1 ) );
\r
\r
@@
-363,14
+371,13
@@
For licensing, see LICENSE.html or http://ckeditor.com/license
contentBlock.appendTo( listItem );
\r
else
\r
{
\r
contentBlock.appendTo( listItem );
\r
else
\r
{
\r
- // Remove DIR attribute if it was merged into list root.
\r
+ contentBlock.copyAttributes( listItem );
\r
+ // Remove direction attribute after it was merged into list root. (#7657)
\r
if ( listDir && contentBlock.getDirection() )
\r
{
\r
if ( listDir && contentBlock.getDirection() )
\r
{
\r
- contentBlock.removeStyle( 'direction' );
\r
- contentBlock.removeAttribute( 'dir' );
\r
+ listItem.removeStyle( 'direction' );
\r
+ listItem.removeAttribute( 'dir' );
\r
}
\r
}
\r
-
\r
- contentBlock.copyAttributes( listItem );
\r
contentBlock.moveChildren( listItem );
\r
contentBlock.remove();
\r
}
\r
contentBlock.moveChildren( listItem );
\r
contentBlock.remove();
\r
}
\r