| 85 | function onDirChanged( e ) |
| 86 | { |
| 87 | var editor = e.editor; |
| 88 | |
| 89 | var range = new CKEDITOR.dom.range( editor.document ); |
| 90 | range.setStartBefore( e.data ); |
| 91 | range.setEndAfter( e.data ); |
| 92 | |
| 93 | var walker = new CKEDITOR.dom.walker( range ), |
| 94 | node; |
| 95 | |
| 96 | while ( node = walker.next() ) |
| 97 | { |
| 98 | if ( node.type == CKEDITOR.NODE_ELEMENT ) |
| 99 | { |
| 100 | // A child with the defined dir is to be ignored. |
| 101 | if ( !node.equals( e.data ) && node.getDirection() ) |
| 102 | { |
| 103 | range.setStartAfter( node ); |
| 104 | walker = new CKEDITOR.dom.walker( range ); |
| 105 | continue; |
| 106 | } |
| 107 | |
| 108 | // Switch the alignment. |
| 109 | var style = 'text-align'; |
| 110 | var align = node.getStyle( style ); |
| 111 | |
| 112 | if ( align == 'left' ) |
| 113 | node.setStyle( style, 'right' ); |
| 114 | else if ( align == 'right' ) |
| 115 | node.setStyle( style, 'left' ); |
| 116 | } |
| 117 | } |
| 118 | } |
| 119 | |