X-Git-Url: https://jasonwoof.com/gitweb/?p=ckeditor.git;a=blobdiff_plain;f=_source%2Fcore%2Fskins.js;h=2246f6d2ff31ea404491a00c677131a89f90cd15;hp=b31373e0b43e7c188abc205fb31cb0c1959d9f52;hb=039a051ccf3901311661022a30afd60fc38130c9;hpb=c9fdde67e6384bd5a66adc2b3bba5c4ce9db56c7 diff --git a/_source/core/skins.js b/_source/core/skins.js index b31373e..2246f6d 100644 --- a/_source/core/skins.js +++ b/_source/core/skins.js @@ -16,9 +16,9 @@ For licensing, see LICENSE.html or http://ckeditor.com/license CKEDITOR.skins = (function() { // Holds the list of loaded skins. - var loaded = {}; - var preloaded = {}; - var paths = {}; + var loaded = {}, + preloaded = {}, + paths = {}; var loadPart = function( editor, skinName, part, callback ) { @@ -55,22 +55,30 @@ CKEDITOR.skins = (function() } // Check if we need to preload images from it. - if ( !preloaded[ skinName ] ) + var preload = skinDefinition.preload; + if ( preload && preload.length > 0 ) { - var preload = skinDefinition.preload; - if ( preload && preload.length > 0 ) + if ( !preloaded[ skinName ] ) { + // Prepare image URLs appendSkinPath( preload ); - CKEDITOR.imageCacher.load( preload, function() + + // Get preloader event dispatcher object. + preloaded[ skinName ] = CKEDITOR.imageCacher.load( preload ); + } + + if ( !preloaded[ skinName ].finished ) + { + // Bind listener for this editor instance. + preloaded[ skinName ].on( 'loaded', function() { - preloaded[ skinName ] = 1; loadPart( editor, skinName, part, callback ); - } ); + } + ); + + // Execution will be continued from event listener. return; } - - // Mark it as preloaded. - preloaded[ skinName ] = 1; } // Get the part definition. @@ -93,8 +101,8 @@ CKEDITOR.skins = (function() // Check whether the "css" and "js" properties have been defined // for that part. - var cssIsLoaded = !part.css || !part.css.length; - var jsIsLoaded = !part.js || !part.js.length; + var cssIsLoaded = !part.css || !part.css.length, + jsIsLoaded = !part.js || !part.js.length; // This is the function that will trigger the callback calls on // load.