Index: tabledrag.js =================================================================== RCS file: /cvs/drupal/drupal/misc/tabledrag.js,v retrieving revision 1.28 diff -u -r1.28 tabledrag.js --- tabledrag.js 27 Apr 2009 20:19:35 -0000 1.28 +++ tabledrag.js 27 May 2009 19:27:36 -0000 @@ -113,31 +113,29 @@ } // Hide the column containing this field. - if (hidden && cell[0] && cell.css('display') != 'none') { + if (hidden && cell[0]) { // Add 1 to our indexes. The nth-child selector is 1 based, not 0 based. - var columnIndex = $('td', cell.parent()).index(cell.get(0)) + 1; - var headerIndex = $('td:not(:hidden)', cell.parent()).index(cell.get(0)) + 1; + var index = $('td', cell.parent()).index(cell.get(0)) + 1; $('tr', this.table).each(function () { var row = $(this); var parentTag = row.parent().get(0).tagName.toLowerCase(); - var index = (parentTag == 'thead') ? headerIndex : columnIndex; + var i = index; // Adjust the index to take into account colspans. row.children().each(function (n) { - if (n < index) { - index -= (this.colSpan && this.colSpan > 1) ? this.colSpan - 1 : 0; + if (n < i) { + i -= (this.colSpan && this.colSpan > 1) ? this.colSpan - 1 : 0; } }); - if (index > 0) { - cell = row.children(':nth-child(' + index + ')'); + if (i > 0) { + cell = row.children(':nth-child(' + i + ')'); if (cell[0].colSpan > 1) { // If this cell has a colspan, simply reduce it. cell[0].colSpan = cell[0].colSpan - 1; } else { - // Hide table body cells, but remove table header cells entirely - // (Safari doesn't hide properly). - parentTag == 'thead' ? cell.remove() : cell.css('display', 'none'); + // Otherwise hide the cell. + cell.css('display', 'none'); } } });