JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.6.3
[ckeditor.git] / _source / plugins / elementspath / plugin.js
index f4320f4..1fb5435 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -14,6 +14,8 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
        {\r
                toolbarFocus :\r
                {\r
+                       editorFocus : false,\r
+                       readOnly : 1,\r
                        exec : function( editor )\r
                        {\r
                                var idBase = editor._.elementsPath.idBase;\r
@@ -123,24 +125,30 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
 \r
                                        while ( element )\r
                                        {\r
-                                               var ignore = 0;\r
+                                               var ignore = 0,\r
+                                                       name;\r
+\r
+                                               if ( element.data( 'cke-display-name' ) )\r
+                                                       name = element.data( 'cke-display-name' );\r
+                                               else if ( element.data( 'cke-real-element-type' ) )\r
+                                                       name = element.data( 'cke-real-element-type' );\r
+                                               else\r
+                                                       name = element.getName();\r
+\r
                                                for ( var i = 0; i < filters.length; i++ )\r
                                                {\r
-                                                       if ( filters[ i ]( element ) === false )\r
+                                                       var ret = filters[ i ]( element, name );\r
+                                                       if ( ret === false )\r
                                                        {\r
                                                                ignore = 1;\r
                                                                break;\r
                                                        }\r
+                                                       name = ret || name;\r
                                                }\r
 \r
                                                if ( !ignore )\r
                                                {\r
                                                        var index = elementsList.push( element ) - 1;\r
-                                                       var name;\r
-                                                       if ( element.data( 'cke-real-element-type' ) )\r
-                                                               name = element.data( 'cke-real-element-type' );\r
-                                                       else\r
-                                                               name = element.getName();\r
 \r
                                                        // Use this variable to add conditional stuff to the\r
                                                        // HTML (because we are doing it in reverse order... unshift).\r
@@ -188,14 +196,23 @@ For licensing, see LICENSE.html or http://ckeditor.com/license
                                        editor.fire( 'elementsPathUpdate', { space : space } );\r
                                });\r
 \r
-                       editor.on( 'contentDomUnload', function()\r
-                               {\r
-                                       // If the spaceElement hasn't been initialized, don't try to do it at this time\r
-                                       // Only reuse existing reference.\r
-                                       spaceElement && spaceElement.setHtml( emptyHtml );\r
-                               });\r
+                       function empty()\r
+                       {\r
+                               spaceElement && spaceElement.setHtml( emptyHtml );\r
+                               delete editor._.elementsPath.list;\r
+                       }\r
+\r
+                       editor.on( 'readOnly', empty );\r
+                       editor.on( 'contentDomUnload', empty );\r
 \r
                        editor.addCommand( 'elementsPathFocus', commands.toolbarFocus );\r
                }\r
        });\r
 })();\r
+\r
+/**\r
+ * Fired when the contents of the elementsPath are changed\r
+ * @name CKEDITOR.editor#elementsPathUpdate\r
+ * @event\r
+ * @param {Object} eventData.space The elementsPath container\r
+ */\r