Make WordPress Core

Ticket #28913: 28913.4.patch

File 28913.4.patch, 2.5 KB (added by iseulde, 10 years ago)
  • src/wp-includes/js/tinymce/plugins/wpview/plugin.js

     
    343343                        range, clonedRange, tempRange, remove;
    344344
    345345                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                                         }
     346                        // Ignore key presses that involve the command or control key, but continue when in combination with backspace or v.
     347                        // Also ignore the F# keys.
     348                        if ( ( ( event.metaKey || event.ctrlKey ) && key !== VK.BACKSPACE && key !== 86 ) || ( key >= 112 && key <= 123 ) ) {
     349                                // Remove the view when pressing cmd/ctrl+x on keyup, otherwise the browser can't copy the content.
     350                                if ( ( event.metaKey || event.ctrlKey ) && key === 88 ) {
     351                                        toRemove = selected;
    357352                                }
    358353                                return;
    359354                        }
     
    437432                                }
    438433                        }
    439434
    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 ) ) {
     435                        if ( ! view ) {
     436                                // Make sure we don't eat any content.
     437                                if ( event.keyCode === VK.BACKSPACE ) {
     438                                        if ( editor.dom.isEmpty( node ) ) {
     439                                                if ( view = getView( node.previousSibling ) ) {
     440                                                        setViewCursor( false, view );
     441                                                        editor.dom.remove( node );
     442                                                        event.preventDefault();
     443                                                }
     444                                        } else if ( ( range = selection.getRng() ) &&
     445                                                        range.startOffset === 0 &&
     446                                                        range.endOffset === 0 &&
     447                                                        ( view = getView( node.previousSibling ) ) ) {
    444448                                                setViewCursor( false, view );
    445                                                 editor.dom.remove( node );
    446449                                                event.preventDefault();
    447                                                 return;
    448450                                        }
    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;
    456451                                }
    457                         }
    458 
    459                         if ( ! view ) {
    460452                                return;
    461453                        }
    462454