X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=_source%2Fthemes%2Fdefault%2Ftheme.js;h=b2502024ece7414c567e04449d0acfb51a37c44c;hb=refs%2Ftags%2Fv3.5.4;hp=a281843d495481af02c1fc4c82aca35d189c4dcc;hpb=9afde8772159bd3436f1f5b7862960307710ae5a;p=ckeditor.git
diff --git a/_source/themes/default/theme.js b/_source/themes/default/theme.js
index a281843..b250202 100644
--- a/_source/themes/default/theme.js
+++ b/_source/themes/default/theme.js
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
For licensing, see LICENSE.html or http://ckeditor.com/license
*/
@@ -10,6 +10,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
CKEDITOR.themes.add( 'default', (function()
{
+ var hiddenSkins = {};
+
function checkSharedSpace( editor, spaceName )
{
var container,
@@ -26,7 +28,9 @@ CKEDITOR.themes.add( 'default', (function()
{
// Creates an HTML structure that reproduces the editor class hierarchy.
var html =
- '' +
+ '' +
'' +
'' +
'' +
@@ -119,6 +123,12 @@ CKEDITOR.themes.add( 'default', (function()
sharedTop && ( sharedTop.setHtml( topHtml ) , topHtml = '' );
sharedBottoms && ( sharedBottoms.setHtml( bottomHtml ), bottomHtml = '' );
+ var hideSkin = '';
+ if ( hiddenSkins[ editor.skinClass ] )
+ hideSkin = '';
+ else
+ hiddenSkins[ editor.skinClass ] = 1;
+
var container = CKEDITOR.dom.element.createFromHtml( [
'
' , bottomHtml , ' | ' +
'' +
//Hide the container when loading skins, later restored by skin css.
- '' +
+ hideSkin +
'' +
'' +
'' ].join( '' ) );
@@ -166,6 +176,18 @@ CKEDITOR.themes.add( 'default', (function()
// Disable browser context menu for editor's chrome.
container.disableContextMenu();
+ // Use a class to indicate that the current selection is in different direction than the UI.
+ editor.on( 'contentDirChanged', function( evt )
+ {
+ var func = ( editor.lang.dir != evt.data ? 'add' : 'remove' ) + 'Class';
+
+ container.getChild( 1 )[ func ]( 'cke_mixed_dir_content' );
+
+ // Put the mixed direction class on the respective element also for shared spaces.
+ var toolbarSpace = this.sharedSpaces && this.sharedSpaces[ this.config.toolbarLocation ];
+ toolbarSpace && toolbarSpace.getParent().getParent()[ func ]( 'cke_mixed_dir_content' );
+ });
+
editor.fireOnce( 'themeLoaded' );
editor.fireOnce( 'uiReady' );
},
@@ -241,17 +263,21 @@ CKEDITOR.themes.add( 'default', (function()
destroy : function( editor )
{
- var container = editor.container;
- container.clearCustomData();
- editor.element.clearCustomData();
+ var container = editor.container,
+ element = editor.element;
if ( container )
+ {
+ container.clearCustomData();
container.remove();
+ }
- if ( editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE )
- editor.element.show();
-
- delete editor.element;
+ if ( element )
+ {
+ element.clearCustomData();
+ editor.elementMode == CKEDITOR.ELEMENT_MODE_REPLACE && element.show();
+ delete editor.element;
+ }
}
};
})() );
@@ -331,7 +357,7 @@ CKEDITOR.editor.prototype.resize = function( width, height, isContentHeight, res
*/
CKEDITOR.editor.prototype.getResizable = function()
{
- return this.container.getChild( 1 );
+ return this.container;
};
/**
@@ -363,6 +389,6 @@ CKEDITOR.editor.prototype.getResizable = function()
/**
* Fired after the editor instance is resized through
* the {@link CKEDITOR.editor.prototype.resize} method.
- * @name CKEDITOR#resize
+ * @name CKEDITOR.editor#resize
* @event
*/