Changeset 29246
- Timestamp:
- 07/19/2014 07:29:34 AM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/wp-includes/js/tinymce/plugins/wpview/plugin.js
r29236 r29246 102 102 } 103 103 104 function removeView( view ) { 105 // TODO: trigger an event to run a clean up function. 106 // Maybe `jQuery( view ).trigger( 'remove' );`? 107 editor.undoManager.transact( function() { 108 handleEnter( view ); 109 editor.dom.remove( view ); 110 }); 111 } 112 104 113 function select( viewNode ) { 105 114 var clipboard, … … 184 193 if ( ! event.content ) { 185 194 return; 195 } 196 197 if ( selected ) { 198 removeView( selected ); 186 199 } 187 200 … … 294 307 wp.mce.views.edit( view ); 295 308 } else if ( editor.dom.hasClass( event.target, 'remove' ) ) { 296 editor.dom.remove( view );309 removeView( view ); 297 310 } 298 311 } … … 341 354 selection = editor.selection, 342 355 node, view, cursorBefore, cursorAfter, 343 range, clonedRange, tempRange , remove;356 range, clonedRange, tempRange; 344 357 345 358 if ( selected ) { 346 // Let key presses that involve the command or control keys through. 347 // Also, let any of the F# keys through. 348 if ( event.metaKey || event.ctrlKey || ( key >= 112 && key <= 123 ) ) { 349 // But remove the view when cmd/ctrl + x/backspace are pressed. 350 if ( ( event.metaKey || event.ctrlKey ) && ( key === 88 || key === VK.BACKSPACE ) ) { 351 // We'll remove a cut view on keyup, otherwise the browser can't copy the content. 352 if ( key === 88 ) { 353 toRemove = selected; 354 } else { 355 editor.dom.remove( selected ); 356 } 359 // Ignore key presses that involve the command or control key, but continue when in combination with backspace or v. 360 // Also ignore the F# keys. 361 if ( ( ( event.metaKey || event.ctrlKey ) && key !== VK.BACKSPACE && key !== 86 ) || ( key >= 112 && key <= 123 ) ) { 362 // Remove the view when pressing cmd/ctrl+x on keyup, otherwise the browser can't copy the content. 363 if ( ( event.metaKey || event.ctrlKey ) && key === 88 ) { 364 toRemove = selected; 357 365 } 358 366 return; … … 400 408 // Ignore keys that don't insert anything. 401 409 } else if ( ( key > 47 || VK.SPACEBAR || key === VK.ENTER || key === VK.DELETE || key === VK.BACKSPACE ) && key !== 144 && key !== 145 ) { 402 editor.undoManager.transact( function() { 403 remove = selected; 404 handleEnter( selected ); 405 dom.remove( remove ); 406 }); 410 removeView( selected ); 407 411 408 412 if ( key === VK.ENTER || key === VK.DELETE || key === VK.BACKSPACE ) { … … 438 442 } 439 443 440 // Make sure we don't eat any content. 441 if ( event.keyCode === VK.BACKSPACE ) { 442 if ( editor.dom.isEmpty( node ) ) { 443 if ( view = getView( node.previousSibling ) ) { 444 if ( ! view ) { 445 // Make sure we don't eat any content. 446 if ( event.keyCode === VK.BACKSPACE ) { 447 if ( editor.dom.isEmpty( node ) ) { 448 if ( view = getView( node.previousSibling ) ) { 449 setViewCursor( false, view ); 450 editor.dom.remove( node ); 451 event.preventDefault(); 452 } 453 } else if ( ( range = selection.getRng() ) && 454 range.startOffset === 0 && 455 range.endOffset === 0 && 456 ( view = getView( node.previousSibling ) ) ) { 444 457 setViewCursor( false, view ); 445 editor.dom.remove( node );446 458 event.preventDefault(); 447 return; 448 } 449 } else if ( ( range = selection.getRng() ) && 450 range.startOffset === 0 && 451 range.endOffset === 0 && 452 ( view = getView( node.previousSibling ) ) ) { 453 setViewCursor( false, view ); 454 event.preventDefault(); 455 return; 456 } 457 } 458 459 if ( ! view ) { 459 } 460 } 460 461 return; 461 462 } … … 516 517 event.preventDefault(); 517 518 } else if ( cursorAfter && key === VK.BACKSPACE ) { 518 editor.undoManager.transact( function() { 519 handleEnter( view ); 520 dom.remove( view ); 521 }); 519 removeView( view ); 522 520 event.preventDefault(); 523 521 } else if ( cursorAfter ) { … … 535 533 editor.on( 'keyup', function() { 536 534 if ( toRemove ) { 537 editor.dom.remove( toRemove );535 removeView( toRemove ); 538 536 toRemove = false; 539 537 }
Note: See TracChangeset
for help on using the changeset viewer.