JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.4.2
[ckeditor.git] / _source / plugins / specialchar / dialogs / specialchar.js
index 7c37603..0fba305 100644 (file)
@@ -15,22 +15,25 @@ CKEDITOR.dialog.add( 'specialchar', function( editor )
        var insertSpecialChar = function ( specialChar )\r
        {\r
                var selection = editor.getSelection(),\r
-                       ranges    = selection.getRanges(),\r
+                       ranges = selection.getRanges( true ),\r
                        range, textNode;\r
 \r
                editor.fire( 'saveSnapshot' );\r
 \r
-               for ( var i = 0, len = ranges.length ; i < len ; i++ )\r
+               for ( var i = ranges.length - 1; i >= 0 ; i-- )\r
                {\r
                        range = ranges[ i ];\r
                        range.deleteContents();\r
 \r
-                       textNode =  CKEDITOR.dom.element.createFromHtml( specialChar );\r
+                       textNode = CKEDITOR.dom.element.createFromHtml( specialChar );\r
                        range.insertNode( textNode );\r
                }\r
 \r
-               range.moveToPosition( textNode, CKEDITOR.POSITION_AFTER_END );\r
-               range.select();\r
+               if ( range )\r
+               {\r
+                       range.moveToPosition( textNode, CKEDITOR.POSITION_AFTER_END );\r
+                       range.select();\r
+               }\r
 \r
                editor.fire( 'saveSnapshot' );\r
        };\r
@@ -109,8 +112,8 @@ CKEDITOR.dialog.add( 'specialchar', function( editor )
                // Get an Anchor element.\r
                var element = ev.getTarget();\r
                var relative, nodeToMove;\r
-               var keystroke = ev.getKeystroke();\r
-               var rtl = editor.lang.dir == 'rtl';\r
+               var keystroke = ev.getKeystroke(),\r
+                       rtl = editor.lang.dir == 'rtl';\r
 \r
                switch ( keystroke )\r
                {\r
@@ -262,7 +265,7 @@ CKEDITOR.dialog.add( 'specialchar', function( editor )
                        var columns = this.definition.charColumns,\r
                                chars = this.definition.chars;\r
 \r
-                       var charsTableLabel =  'specialchar_table_label' + CKEDITOR.tools.getNextNumber();\r
+                       var charsTableLabel =  CKEDITOR.tools.getNextId() + '_specialchar_table_label';\r
                        var html = [ '<table role="listbox" aria-labelledby="' + charsTableLabel + '"' +\r
                                                                        ' style="width: 320px; height: 100%; border-collapse: separate;"' +\r
                                                                        ' align="center" cellspacing="2" cellpadding="2" border="0">' ];\r
@@ -344,11 +347,11 @@ CKEDITOR.dialog.add( 'specialchar', function( editor )
                                                                focus : function()\r
                                                                {\r
                                                                        var firstChar = this.getElement().getElementsByTag( 'a' ).getItem( 0 );\r
-                                                                       setTimeout(function()\r
+                                                                       setTimeout( function()\r
                                                                        {\r
                                                                                firstChar.focus();\r
                                                                                onFocus( null, firstChar );\r
-                                                                       });\r
+                                                                       }, 0 );\r
                                                                },\r
                                                                onShow : function()\r
                                                                {\r
@@ -357,7 +360,7 @@ CKEDITOR.dialog.add( 'specialchar', function( editor )
                                                                                {\r
                                                                                        firstChar.focus();\r
                                                                                        onFocus( null, firstChar );\r
-                                                                               });\r
+                                                                               }, 0 );\r
                                                                },\r
                                                                onLoad : function( event )\r
                                                                {\r