\r
function onSelectionChange( evt )\r
{\r
- evt.editor.getCommand( 'bidirtl' ).setState( getState( evt.editor, evt.data.path, 'rtl' ) );\r
- evt.editor.getCommand( 'bidiltr' ).setState( getState( evt.editor, evt.data.path, 'ltr' ) );\r
- }\r
-\r
- function getState( editor, path, dir )\r
- {\r
+ var editor = evt.editor,\r
+ path = evt.data.path;\r
var useComputedState = editor.config.useComputedState,\r
selectedElement;\r
\r
selectedElement = selectedElement || path.block || path.blockLimit;\r
\r
if ( !selectedElement || selectedElement.getName() == 'body' )\r
- return CKEDITOR.TRISTATE_OFF;\r
+ return;\r
\r
- selectedElement = useComputedState ?\r
+ var selectionDir = useComputedState ?\r
selectedElement.getComputedStyle( 'direction' ) :\r
selectedElement.getStyle( 'direction' ) || selectedElement.getAttribute( 'dir' );\r
\r
- return ( selectedElement == dir ) ?\r
- CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF;\r
+ editor.getCommand( 'bidirtl' ).setState( selectionDir == 'rtl' ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );\r
+ editor.getCommand( 'bidiltr' ).setState( selectionDir == 'ltr' ? CKEDITOR.TRISTATE_ON : CKEDITOR.TRISTATE_OFF );\r
+\r
+ var chromeRoot = editor.container.getChild( 1 );\r
+\r
+ if ( selectionDir != editor.lang.dir )\r
+ chromeRoot.addClass( 'cke_mixed_dir_content' );\r
+ else\r
+ chromeRoot.removeClass( 'cke_mixed_dir_content' );\r
}\r
\r
function switchDir( element, dir, editor )\r