/*\r
-Copyright (c) 2003-2009, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.html or http://ckeditor.com/license\r
*/\r
\r
node = null;\r
}\r
else\r
- node = ( guard ( node ) === false ) ?\r
+ node = ( guard ( node, true ) === false ) ?\r
null : node.getPreviousSourceNode( true, type, guard );\r
}\r
else\r
node = null;\r
}\r
else\r
- node = ( guard ( range.startContainer ) === false ) ?\r
+ node = ( guard ( range.startContainer, true ) === false ) ?\r
null : range.startContainer.getNextSourceNode( true, type, guard ) ;\r
}\r
}\r
{\r
return this.blockBoundary( { br : 1 } );\r
};\r
- /**\r
- * Whether the node is a bookmark node's inner text node.\r
- */\r
- CKEDITOR.dom.walker.bookmarkContents = function( node )\r
- {\r
- },\r
\r
/**\r
* Whether the to-be-evaluated node is a bookmark node OR bookmark node\r
{\r
return ( node && node.getName\r
&& node.getName() == 'span'\r
- && node.hasAttribute('_fck_bookmark') );\r
+ && node.hasAttribute('_cke_bookmark') );\r
}\r
\r
return function( node )\r
};\r
};\r
\r
+ var tailNbspRegex = /^[\t\r\n ]*(?: |\xa0)$/,\r
+ isNotWhitespaces = CKEDITOR.dom.walker.whitespaces( true ),\r
+ isNotBookmark = CKEDITOR.dom.walker.bookmark( false, true ),\r
+ fillerEvaluator = function( element )\r
+ {\r
+ return isNotBookmark( element ) && isNotWhitespaces( element );\r
+ };\r
+\r
+ // Check if there's a filler node at the end of an element, and return it.\r
+ CKEDITOR.dom.element.prototype.getBogus = function ()\r
+ {\r
+ var tail = this.getLast( fillerEvaluator );\r
+ if ( tail && ( !CKEDITOR.env.ie ? tail.is && tail.is( 'br' )\r
+ : tail.getText && tailNbspRegex.test( tail.getText() ) ) )\r
+ {\r
+ return tail;\r
+ }\r
+ return false;\r
+ };\r
+\r
})();\r