X-Git-Url: https://jasonwoof.com/gitweb/?p=ckeditor.git;a=blobdiff_plain;f=_source%2Fplugins%2Fspecialchar%2Fdialogs%2Fspecialchar.js;h=ae15b02a611948c11bff10280877493c2ad480a5;hp=7c37603a9a68331e78a5904ad34c5c27ba03cbe4;hb=e371ddf8abcb89013e20e6d0dd746adec344d0e5;hpb=055b6b0792ce7dc53d47af606b367c04b927c2ab diff --git a/_source/plugins/specialchar/dialogs/specialchar.js b/_source/plugins/specialchar/dialogs/specialchar.js index 7c37603..ae15b02 100644 --- a/_source/plugins/specialchar/dialogs/specialchar.js +++ b/_source/plugins/specialchar/dialogs/specialchar.js @@ -15,22 +15,25 @@ CKEDITOR.dialog.add( 'specialchar', function( editor ) var insertSpecialChar = function ( specialChar ) { var selection = editor.getSelection(), - ranges = selection.getRanges(), + ranges = selection.getRanges( true ), range, textNode; editor.fire( 'saveSnapshot' ); - for ( var i = 0, len = ranges.length ; i < len ; i++ ) + for ( var i = ranges.length - 1; i >= 0 ; i-- ) { range = ranges[ i ]; range.deleteContents(); - textNode = CKEDITOR.dom.element.createFromHtml( specialChar ); + textNode = CKEDITOR.dom.element.createFromHtml( specialChar ); range.insertNode( textNode ); } - range.moveToPosition( textNode, CKEDITOR.POSITION_AFTER_END ); - range.select(); + if ( range ) + { + range.moveToPosition( textNode, CKEDITOR.POSITION_AFTER_END ); + range.select(); + } editor.fire( 'saveSnapshot' ); }; @@ -262,7 +265,7 @@ CKEDITOR.dialog.add( 'specialchar', function( editor ) var columns = this.definition.charColumns, chars = this.definition.chars; - var charsTableLabel = 'specialchar_table_label' + CKEDITOR.tools.getNextNumber(); + var charsTableLabel = CKEDITOR.tools.getNextId() + '_specialchar_table_label'; var html = [ '' ];