48 | | // If may be possible for us to have a range like this: |
49 | | // <td>^1</td><td>^2</td> |
50 | | // The 2nd td shouldn't be included. |
51 | | // |
52 | | // So we have to take care to include a td we've entered only when we've |
53 | | // walked into its children. |
| 50 | // Walker does not handle collapsed ranges yet - fall back to old API. |
| 51 | var startNode = range.getBoundaryNodes().startNode; |
| 52 | var nearestCell = startNode.getAscendant( 'td', true ) || startNode.getAscendant( 'th', true ); |
| 53 | if ( nearestCell ) |
| 54 | retval.push( nearestCell ); |
| 55 | } |
| 56 | else |
| 57 | { |
| 58 | var walker = new CKEDITOR.dom.walker( range ); |
| 59 | var node; |
| 60 | walker.guard = moveOutOfCellGuard; |
58 | | CKEDITOR.dom.element.setMarker( database, parent, 'selected_cell', true ); |
59 | | retval.push( parent ); |
| 64 | // If may be possible for us to have a range like this: |
| 65 | // <td>^1</td><td>^2</td> |
| 66 | // The 2nd td shouldn't be included. |
| 67 | // |
| 68 | // So we have to take care to include a td we've entered only when we've |
| 69 | // walked into its children. |
| 70 | |
| 71 | var parent = node.getParent(); |
| 72 | if ( parent && cellNodeRegex.test( parent.getName() ) && !parent.getCustomData( 'selected_cell' ) ) |
| 73 | { |
| 74 | CKEDITOR.dom.element.setMarker( database, parent, 'selected_cell', true ); |
| 75 | retval.push( parent ); |
| 76 | } |