Ticket #3796: 3796.patch

File 3796.patch, 2.3 KB (added by Martin Kou, 10 years ago)
  • _source/plugins/link/dialogs/anchor.js

     
    66CKEDITOR.dialog.add( 'anchor', function( editor )
    77{
    88        // Function called in onShow to load selected element.
    9         var loadElements = function( editor, selection, ranges, element )
     9        var loadElements = function( editor, selection, element )
    1010        {
    1111                this.editMode = true;
    1212                this.editObj = element;
     
    3838                        }
    3939
    4040                        // Set name.
     41                        element.removeAttribute( '_cke_saved_name' );
    4142                        element.setAttribute( 'name', name );
    4243
    4344                        // Insert a new anchor.
    4445                        var fakeElement = editor.createFakeElement( element, 'cke_anchor', 'anchor' );
    4546                        if ( !this.editMode )
    46                         {
    4747                                editor.insertElement( fakeElement );
    48                         }
    4948                        else
    5049                        {
    5150                                fakeElement.replace( this.fakeObj );
    52 
    5351                                editor.getSelection().selectElement( fakeElement );
    5452                        }
    5553
     
    6159                        this.fakeObj = false;
    6260                        this.editMode = false;
    6361
    64                         var editor = this.getParentEditor(),
    65                                 selection = editor.getSelection(),
    66                                 ranges = selection.getRanges();
    67 
    68                         if ( ranges.length == 1 )
     62                        var selection = editor.getSelection();
     63                        var element = selection.getSelectedElement();
     64                        if ( element && element.getAttribute( '_cke_real_element_type' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' )
    6965                        {
    70                                 ranges[0].enlarge( CKEDITOR.ENLARGE_ELEMENT );
    71                                 var rangeRoot = ranges[0].getCommonAncestor( true );
    72                                 var element = rangeRoot.getAscendant( 'img', true );
    73                                 if ( element && element.getAttribute( '_cke_real_element_type' ) && element.getAttribute( '_cke_real_element_type' ) == 'anchor' )
    74                                 {
    75                                         this.fakeObj = element;
    76                                         element = editor.restoreRealElement( this.fakeObj );
    77                                         loadElements.apply( this, [ editor, selection, ranges, element ] );
    78                                         selection.selectElement( this.fakeObj );
    79                                 }
     66                                this.fakeObj = element;
     67                                element = editor.restoreRealElement( this.fakeObj );
     68                                loadElements.apply( this, [ editor, selection, element ] );
     69                                selection.selectElement( this.fakeObj );
    8070                        }
    8171                        this.getContentElement( 'info', 'txtName' ).focus();
    8272                },
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy