return;\r
\r
// Create a clone of the row.\r
- var newRow = row.clone( true );\r
+ var newRow = row.clone( 1 );\r
\r
- // Insert the new row before of it.\r
- newRow.insertBefore( row );\r
+ insertBefore ?\r
+ newRow.insertBefore( row ) :\r
+ newRow.insertAfter( row );\r
\r
- // Clean one of the rows to produce the illusion of inserting an empty row\r
- // before or after.\r
- clearRow( insertBefore ? newRow.$ : row.$ );\r
+ // Clean the new row.\r
+ clearRow( newRow.$ );\r
}\r
\r
function deleteRows( selectionOrRow )\r
{\r
// Get the cell where the selection is placed in.\r
var startElement = selection.getStartElement();\r
- var cell = startElement.getAscendant( 'td', true ) || startElement.getAscendant( 'th', true );\r
+ var cell = startElement.getAscendant( 'td', 1 ) || startElement.getAscendant( 'th', 1 );\r
\r
if ( !cell )\r
return;\r
if ( $row.cells.length < ( cellIndex + 1 ) )\r
continue;\r
\r
- cell = ( new CKEDITOR.dom.element( $row.cells[ cellIndex ] ) ).clone( false );\r
+ cell = ( new CKEDITOR.dom.element( $row.cells[ cellIndex ] ) ).clone( 0 );\r
\r
if ( !CKEDITOR.env.ie )\r
cell.appendBogus();\r
function insertCell( selection, insertBefore )\r
{\r
var startElement = selection.getStartElement();\r
- var cell = startElement.getAscendant( 'td', true ) || startElement.getAscendant( 'th', true );\r
+ var cell = startElement.getAscendant( 'td', 1 ) || startElement.getAscendant( 'th', 1 );\r
\r
if ( !cell )\r
return;\r
{\r
exec : function( editor )\r
{\r
- var selection = editor.getSelection();\r
- var startElement = selection && selection.getStartElement();\r
- var table = startElement && startElement.getAscendant( 'table', true );\r
+ var selection = editor.getSelection(),\r
+ startElement = selection && selection.getStartElement(),\r
+ table = startElement && startElement.getAscendant( 'table', 1 );\r
\r
if ( !table )\r
return;\r
range.collapse();\r
selection.selectRanges( [ range ] );\r
\r
- // If the table's parent has only one child, remove it,except body,as well.( #5416 )\r
+ // If the table's parent has only one child remove it as well (unless it's the body or a table cell) (#5416, #6289)\r
var parent = table.getParent();\r
- if ( parent.getChildCount() == 1 && parent.getName() != 'body' )\r
+ if ( parent.getChildCount() == 1 && !parent.is( 'body', 'td', 'th' ) )\r
parent.remove();\r
else\r
table.remove();\r