JasonWoof Got questions, comments, patches, etc.? Contact Jason Woofenden
vanilla ckeditor-3.6.6.1
[ckeditor.git] / _source / plugins / smiley / dialogs / smiley.js
index 5d05d95..dee2418 100644 (file)
@@ -1,5 +1,5 @@
 /*\r
-Copyright (c) 2003-2010, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2013, CKSource - Frederico Knabben. All rights reserved.\r
 For licensing, see LICENSE.html or http://ckeditor.com/license\r
 */\r
 \r
@@ -34,9 +34,11 @@ CKEDITOR.dialog.add( 'smiley', function( editor )
                                attributes :\r
                                {\r
                                        src : src,\r
-                                       _cke_saved_src : src,\r
+                                       'data-cke-saved-src' : src,\r
                                        title : title,\r
-                                       alt : title\r
+                                       alt : title,\r
+                                       width : target.$.width,\r
+                                       height : target.$.height\r
                                }\r
                        });\r
 \r
@@ -52,8 +54,8 @@ CKEDITOR.dialog.add( 'smiley', function( editor )
                element = new CKEDITOR.dom.element( element );\r
                var relative, nodeToMove;\r
 \r
-               var keystroke = ev.getKeystroke();\r
-               var rtl = editor.lang.dir == 'rtl';\r
+               var keystroke = ev.getKeystroke(),\r
+                       rtl = editor.lang.dir == 'rtl';\r
                switch ( keystroke )\r
                {\r
                        // UP-ARROW\r
@@ -86,8 +88,6 @@ CKEDITOR.dialog.add( 'smiley', function( editor )
 \r
                        // RIGHT-ARROW\r
                        case rtl ? 37 : 39 :\r
-                       // TAB\r
-                       case 9 :\r
                                // relative is TD\r
                                if ( ( relative = element.getParent().getNext() ) )\r
                                {\r
@@ -107,8 +107,6 @@ CKEDITOR.dialog.add( 'smiley', function( editor )
 \r
                        // LEFT-ARROW\r
                        case rtl ? 39 : 37 :\r
-                       // SHIFT + TAB\r
-                       case CKEDITOR.SHIFT + 9 :\r
                                // relative is TD\r
                                if ( ( relative = element.getParent().getPrevious() ) )\r
                                {\r
@@ -131,7 +129,7 @@ CKEDITOR.dialog.add( 'smiley', function( editor )
        });\r
 \r
        // Build the HTML for the smiley images table.\r
-       var labelId = 'smiley_emtions_label' + CKEDITOR.tools.getNextNumber();\r
+       var labelId = CKEDITOR.tools.getNextId() + '_smiley_emtions_label';\r
        var html =\r
        [\r
                '<div>' +\r
@@ -145,11 +143,11 @@ CKEDITOR.dialog.add( 'smiley', function( editor )
        for ( i = 0 ; i < size ; i++ )\r
        {\r
                if ( i % columns === 0 )\r
-                       html.push( '<tr>' );\r
+                       html.push( '<tr role="presentation">' );\r
 \r
                var smileyLabelId = 'cke_smile_label_' + i + '_' + CKEDITOR.tools.getNextNumber();\r
                html.push(\r
-                       '<td class="cke_dark_background cke_centered" style="vertical-align: middle;">' +\r
+                       '<td class="cke_dark_background cke_centered" style="vertical-align: middle;" role="presentation">' +\r
                                '<a href="javascript:void(0)" role="option"',\r
                                        ' aria-posinset="' + ( i +1 ) + '"',\r
                                        ' aria-setsize="' + size + '"',\r
@@ -181,16 +179,22 @@ CKEDITOR.dialog.add( 'smiley', function( editor )
        var smileySelector =\r
        {\r
                type : 'html',\r
+               id : 'smileySelector',\r
                html : html.join( '' ),\r
                onLoad : function( event )\r
                {\r
                        dialog = event.sender;\r
                },\r
                focus : function()\r
-               {\r
-                       var firstSmile = this.getElement().getElementsByTag( 'a' ).getItem( 0 );\r
-                       firstSmile.focus();\r
-               },\r
+               {\r
+                       var self = this;\r
+                       // IE need a while to move the focus (#6539).\r
+                       setTimeout( function ()\r
+                       {\r
+                               var firstSmile = self.getElement().getElementsByTag( 'a' ).getItem( 0 );\r
+                               firstSmile.focus();\r
+                       }, 0 );\r
+               },\r
                onClick : onClick,\r
                style : 'width: 100%; border-collapse: separate;'\r
        };\r