JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.1
[ckeditor.git] / _source / plugins / table / dialogs / table.js
index 2c02aa2..215a373 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -68,6 +68,12 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                        },\r
                        onOk : function()\r
                        {\r
+                               if ( this._.selectedElement )\r
+                               {\r
+                                       var selection = editor.getSelection(),\r
+                                               bms = editor.getSelection().createBookmarks();\r
+                               }\r
+\r
                                var table = this._.selectedElement || makeElement( 'table' ),\r
                                        me = this,\r
                                        data = {};\r
@@ -97,7 +103,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                }\r
                                        }\r
 \r
-                                       // Modify the table headers. Depends on havint rows and cols generated\r
+                                       // Modify the table headers. Depends on having rows and cols generated\r
                                        // correctly so it can't be done in commit functions.\r
 \r
                                        // Should we make a <thead>?\r
@@ -115,8 +121,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                        if ( th.type == CKEDITOR.NODE_ELEMENT )\r
                                                        {\r
                                                                th.renameNode( 'th' );\r
-                                                               if ( !i )\r
-                                                                       th.setAttribute( 'scope', 'col' );\r
+                                                               th.setAttribute( 'scope', 'col' );\r
                                                        }\r
                                                }\r
                                                thead.append( theRow.remove() );\r
@@ -153,7 +158,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                {\r
                                                        newCell = new CKEDITOR.dom.element( table.$.rows[ row ].cells[ 0 ] );\r
                                                        newCell.renameNode( 'th' );\r
-                                                       newCell.setAttribute( 'scope', 'col' );\r
+                                                       newCell.setAttribute( 'scope', 'row' );\r
                                                }\r
                                        }\r
 \r
@@ -166,7 +171,7 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                                        if ( row.getParent().getName() == 'tbody' )\r
                                                        {\r
                                                                newCell = new CKEDITOR.dom.element( row.$.cells[0] );\r
-                                                               newCell.renameNode( 'td');\r
+                                                               newCell.renameNode( 'td' );\r
                                                                newCell.removeAttribute( 'scope' );\r
                                                        }\r
                                                }\r
@@ -175,22 +180,28 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                        // Set the width and height.\r
                                        var styles = [];\r
                                        if ( info.txtHeight )\r
-                                               styles.push( 'height:' + info.txtHeight + 'px' );\r
+                                               table.setStyle( 'height', CKEDITOR.tools.cssLength( info.txtHeight ) );\r
+                                       else\r
+                                               table.removeStyle( 'height' );\r
+\r
                                        if ( info.txtWidth )\r
                                        {\r
                                                var type = info.cmbWidthType || 'pixels';\r
-                                               styles.push( 'width:' + info.txtWidth + ( type == 'pixels' ? 'px' : '%' ) );\r
+                                               table.setStyle( 'width', info.txtWidth + ( type == 'pixels' ? 'px' : '%' ) );\r
                                        }\r
-                                       styles = styles.join( ';' );\r
-                                       if ( styles )\r
-                                               table.$.style.cssText = styles;\r
                                        else\r
+                                               table.removeStyle( 'width' );\r
+\r
+                                       if( !table.getAttribute( 'style' ) )\r
                                                table.removeAttribute( 'style' );\r
                                }\r
 \r
                                // Insert the table element if we're creating one.\r
                                if ( !this._.selectedElement )\r
                                        editor.insertElement( table );\r
+                               // Properly restore the selection inside table. (#4822)\r
+                               else\r
+                                       selection.selectBookmarks( bms );\r
 \r
                                return true;\r
                        },\r