X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=_source%2Fplugins%2Felementspath%2Fplugin.js;h=1fb54350f89c76931befc792a5a0c4504b79d3c1;hb=2f22c0c38f17e75be5541089076885442aaa2377;hp=f4320f4e52e609743a762f544ff5de200dd45470;hpb=9afde8772159bd3436f1f5b7862960307710ae5a;p=ckeditor.git diff --git a/_source/plugins/elementspath/plugin.js b/_source/plugins/elementspath/plugin.js index f4320f4..1fb5435 100644 --- a/_source/plugins/elementspath/plugin.js +++ b/_source/plugins/elementspath/plugin.js @@ -1,5 +1,5 @@ /* -Copyright (c) 2003-2010, 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 */ @@ -14,6 +14,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license { toolbarFocus : { + editorFocus : false, + readOnly : 1, exec : function( editor ) { var idBase = editor._.elementsPath.idBase; @@ -123,24 +125,30 @@ For licensing, see LICENSE.html or http://ckeditor.com/license while ( element ) { - var ignore = 0; + var ignore = 0, + name; + + if ( element.data( 'cke-display-name' ) ) + name = element.data( 'cke-display-name' ); + else if ( element.data( 'cke-real-element-type' ) ) + name = element.data( 'cke-real-element-type' ); + else + name = element.getName(); + for ( var i = 0; i < filters.length; i++ ) { - if ( filters[ i ]( element ) === false ) + var ret = filters[ i ]( element, name ); + if ( ret === false ) { ignore = 1; break; } + name = ret || name; } if ( !ignore ) { var index = elementsList.push( element ) - 1; - var name; - if ( element.data( 'cke-real-element-type' ) ) - name = element.data( 'cke-real-element-type' ); - else - name = element.getName(); // Use this variable to add conditional stuff to the // HTML (because we are doing it in reverse order... unshift). @@ -188,14 +196,23 @@ For licensing, see LICENSE.html or http://ckeditor.com/license editor.fire( 'elementsPathUpdate', { space : space } ); }); - editor.on( 'contentDomUnload', function() - { - // If the spaceElement hasn't been initialized, don't try to do it at this time - // Only reuse existing reference. - spaceElement && spaceElement.setHtml( emptyHtml ); - }); + function empty() + { + spaceElement && spaceElement.setHtml( emptyHtml ); + delete editor._.elementsPath.list; + } + + editor.on( 'readOnly', empty ); + editor.on( 'contentDomUnload', empty ); editor.addCommand( 'elementsPathFocus', commands.toolbarFocus ); } }); })(); + +/** + * Fired when the contents of the elementsPath are changed + * @name CKEDITOR.editor#elementsPathUpdate + * @event + * @param {Object} eventData.space The elementsPath container + */