WordPress.org

Make WordPress Core

Ticket #19528: 19528.diff

File 19528.diff, 1.2 KB (added by solarissmoke, 6 years ago)

Store selection information before textarea loses focus

  • wp-includes/js/wplink.dev.js

     
    1010                keySensitivity: 100,
    1111                lastSearch: '',
    1212                textarea: '',
     13                selectionStart: 0,
     14                selectionEnd: 0,
    1315
    1416                init : function() {
    1517                        inputs.dialog = $('#wp-link');
     
    6365                                return;
    6466
    6567                        this.textarea = $('#'+wpActiveEditor).get(0);
     68                        // save selection info before losing focus
     69                        if( typeof this.textarea.selectionStart !== 'undefined' ) {
     70                                this.selectionStart = this.textarea.selectionStart;
     71                                this.selectionEnd = this.textarea.selectionEnd;
     72                        }
    6673
    6774                        // Initialize the dialog if necessary (html mode).
    6875                        if ( ! inputs.dialog.data('wpdialog') ) {
     
    185192                        // Insert HTML
    186193                        // W3C
    187194                        if ( typeof textarea.selectionStart !== 'undefined' ) {
    188                                 start       = textarea.selectionStart;
    189                                 end         = textarea.selectionEnd;
     195                                start       = wpLink.selectionStart;
     196                                end         = wpLink.selectionEnd;
    190197                                selection   = textarea.value.substring( start, end );
    191198                                html        = html + selection + '</a>';
    192199                                cursor      = start + html.length;