TinyMCE wpView: fix selecting views on click, part props avryl, see #28595

git-svn-id: https://develop.svn.wordpress.org/trunk@29126 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Andrew Ozz 2014-07-12 22:50:19 +00:00
parent 1285d1450b
commit c46233940f
1 changed files with 10 additions and 3 deletions

View File

@ -12,9 +12,16 @@ tinymce.PluginManager.add( 'wpview', function( editor ) {
cursorInterval, lastKeyDownNode, setViewCursorTries, focus;
function getView( node ) {
// Doing this directly is about 40% faster
return getParent( node, 'wpview-wrap' );
}
/**
* Returns the node or a parent of the node that has the passed className.
* Doing this directly is about 40% faster
*/
function getParent( node, className ) {
while ( node && node.parentNode ) {
if ( node.className && (' ' + node.className + ' ').indexOf(' wpview-wrap ') !== -1 ) {
if ( node.className && (' ' + node.className + ' ').indexOf(' ' + className + ' ') !== -1 ) {
return node;
}
@ -623,7 +630,7 @@ tinymce.PluginManager.add( 'wpview', function( editor ) {
}, 500 );
// If the cursor lands anywhere else in the view, set the cursor before it.
// Only try this once to prevent a loop. (You never know.)
} else if ( className !== 'wpview-clipboard' && ! setViewCursorTries ) {
} else if ( ! getParent( event.element, 'wpview-body' ) && ! setViewCursorTries ) {
deselect();
setViewCursorTries++;
setViewCursor( true, view );