X-Git-Url: https://jasonwoof.com/gitweb/?a=blobdiff_plain;f=_source%2Fplugins%2Fspecialchar%2Fdialogs%2Fspecialchar.js;h=0fba305db68fb1f0e4e71297cc3698aadf6e08d3;hb=039a051ccf3901311661022a30afd60fc38130c9;hp=b419cf585dcec460a8c5087a79765b24b0c1fb23;hpb=e7789c1ad838194d45eeee6ac2eb6e55f5cf35a1;p=ckeditor.git diff --git a/_source/plugins/specialchar/dialogs/specialchar.js b/_source/plugins/specialchar/dialogs/specialchar.js index b419cf5..0fba305 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' ); }; @@ -109,8 +112,8 @@ CKEDITOR.dialog.add( 'specialchar', function( editor ) // Get an Anchor element. var element = ev.getTarget(); var relative, nodeToMove; - var keystroke = ev.getKeystroke(); - var rtl = editor.lang.dir == 'rtl'; + var keystroke = ev.getKeystroke(), + rtl = editor.lang.dir == 'rtl'; switch ( keystroke ) { @@ -262,7 +265,8 @@ CKEDITOR.dialog.add( 'specialchar', function( editor ) var columns = this.definition.charColumns, chars = this.definition.chars; - var html = [ '' ]; @@ -289,12 +293,14 @@ CKEDITOR.dialog.add( 'specialchar', function( editor ) // Use character in case description unavailable. charDesc = charDesc || character; + var charLabelId = 'cke_specialchar_label_' + i + '_' + CKEDITOR.tools.getNextNumber(); + html.push( '' ); } - html.push( '
', '' + lang.options +'' ); + html.push( '', '' + lang.options +'' ); this.getContentElement( 'info', 'charContainer' ).getElement().setHtml( html.join( '' ) ); }, @@ -341,11 +347,11 @@ CKEDITOR.dialog.add( 'specialchar', function( editor ) focus : function() { var firstChar = this.getElement().getElementsByTag( 'a' ).getItem( 0 ); - setTimeout(function() + setTimeout( function() { firstChar.focus(); onFocus( null, firstChar ); - }); + }, 0 ); }, onShow : function() { @@ -354,7 +360,7 @@ CKEDITOR.dialog.add( 'specialchar', function( editor ) { firstChar.focus(); onFocus( null, firstChar ); - }); + }, 0 ); }, onLoad : function( event ) {