X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;ds=inline;f=_source%2Fthemes%2Fdefault%2Ftheme.js;h=412c250d922dcf0c256eb82489ad9ad8cc771aa7;hb=refs%2Ftags%2Fv3.6.3;hp=b1e94ba8b1bbc55da452839319c4c174ed213320;hpb=4e90e78dc97789709ee7404359a5517540c27553;p=ckeditor.git
diff --git a/_source/themes/default/theme.js b/_source/themes/default/theme.js
index b1e94ba..412c250 100644
--- a/_source/themes/default/theme.js
+++ b/_source/themes/default/theme.js
@@ -1,5 +1,5 @@
/*
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
+Copyright (c) 2003-2012, 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,
@@ -121,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( '' ) );
@@ -234,6 +242,20 @@ CKEDITOR.themes.add( 'default', (function()
title = body.getChild( 0 ),
close = body.getChild( 1 );
+ // IFrame shim for dialog that masks activeX in IE. (#7619)
+ if ( CKEDITOR.env.ie && !CKEDITOR.env.ie6Compat )
+ {
+ var isCustomDomain = CKEDITOR.env.isCustomDomain(),
+ src = 'javascript:void(function(){' + encodeURIComponent( 'document.open();' + ( isCustomDomain ? ( 'document.domain="' + document.domain + '";' ) : '' ) + 'document.close();' ) + '}())',
+ iframe = CKEDITOR.dom.element.createFromHtml( '' );
+ iframe.appendTo( body.getParent() );
+ }
+
// Make the Title and Close Button unselectable.
title.unselectable();
close.unselectable();
@@ -317,25 +339,23 @@ CKEDITOR.editor.prototype.resize = function( width, height, isContentHeight, res
{
var container = this.container,
contents = CKEDITOR.document.getById( 'cke_contents_' + this.name ),
+ contentsFrame = CKEDITOR.env.webkit && this.document && this.document.getWindow().$.frameElement,
outer = resizeInner ? container.getChild( 1 ) : container;
- // Resize the width first.
- // WEBKIT BUG: Webkit requires that we put the editor off from display when we
- // resize it. If we don't, the browser crashes!
- CKEDITOR.env.webkit && outer.setStyle( 'display', 'none' );
// Set as border box width. (#5353)
outer.setSize( 'width', width, true );
- if ( CKEDITOR.env.webkit )
- {
- outer.$.offsetWidth;
- outer.setStyle( 'display', '' );
- }
+
+ // WebKit needs to refresh the iframe size to avoid rendering issues. (1/2) (#8348)
+ contentsFrame && ( contentsFrame.style.width = '1%' );
// Get the height delta between the outer table and the content area.
// If we're setting the content area's height, then we don't need the delta.
var delta = isContentHeight ? 0 : ( outer.$.offsetHeight || 0 ) - ( contents.$.clientHeight || 0 );
contents.setStyle( 'height', Math.max( height - delta, 0 ) + 'px' );
+ // WebKit needs to refresh the iframe size to avoid rendering issues. (2/2) (#8348)
+ contentsFrame && ( contentsFrame.style.width = '100%' );
+
// Emit a resize event.
this.fire( 'resize' );
};
@@ -344,12 +364,13 @@ CKEDITOR.editor.prototype.resize = function( width, height, isContentHeight, res
* Gets the element that can be freely used to check the editor size. This method
* is mainly used by the resize plugin, which adds a UI handle that can be used
* to resize the editor.
+ * @param {Boolean} forContents Whether to return the "contents" part of the theme instead of the container.
* @returns {CKEDITOR.dom.element} The resizable element.
* @example
*/
-CKEDITOR.editor.prototype.getResizable = function()
+CKEDITOR.editor.prototype.getResizable = function( forContents )
{
- return this.container;
+ return forContents ? CKEDITOR.document.getById( 'cke_contents_' + this.name ) : this.container;
};
/**