Ticket #3553: 3553.patch

File 3553.patch, 4.6 KB (added by Martin Kou, 16 years ago)
  • _source/plugins/toolbar/plugin.js

     
    7979                                        contents.setStyle( 'height', ( contentHeight - dy ) + 'px' );
    8080                                } );
    8181
     82                        var collapserKeystroke = CKEDITOR.tools.addFunction(
     83                                function( evt )
     84                                {
     85                                        var keystroke = evt.getKeystroke();
     86                                        var toolbox = editor.toolbox;
     87                                        switch ( keystroke )
     88                                        {
     89                                                case 39 :                                       // RIGHT-ARROW
     90                                                case 9 :                                        // TAB
     91                                                        // Put focus to first toolbar item.
     92                                                        var item = toolbox.toolbars[ 0 ].items[ 0 ];
     93                                                        item.focus();
     94                                                        evt.preventDefault();
     95                                                        break;
     96                                                case 37 :                                       // LEFT-ARROW
     97                                                case CKEDITOR.SHIFT + 9 :       // SHIFT-TAB
     98                                                        // Put focus to last toolbar item.
     99                                                        var toolbar = toolbox.toolbars[ toolbox.toolbars.length - 1 ];
     100                                                        var item = toolbar.items[ toolbar.items.length - 1 ];
     101                                                        item.focus();
     102                                                        evt.preventDefault();
     103                                                        break;
     104                                        }
     105                                } );
     106
    82107                        var itemKeystroke = function( item, keystroke )
    83108                        {
    84109                                switch ( keystroke )
     
    90115                                                { /*jsl:pass*/ }
    91116
    92117                                                // If available, just focus it, otherwise focus the
    93                                                 // first one.
     118                                                // first one or the collapser.
    94119                                                if ( item )
    95120                                                        item.focus();
    96121                                                else
    97                                                         editor.toolbox.focus();
     122                                                {
     123                                                        if ( editor.toolbox.collapserId )
     124                                                                CKEDITOR.document.getById( editor.toolbox.collapserId ).focus();
     125                                                        else
     126                                                                editor.toolbox.focus();
     127                                                }
    98128
    99129                                                return false;
    100130
     
    105135                                                { /*jsl:pass*/ }
    106136
    107137                                                // If available, just focus it, otherwise focus the
    108                                                 // last one.
     138                                                // last one or the collapser.
    109139                                                if ( item )
    110140                                                        item.focus();
    111141                                                else
    112142                                                {
    113                                                         var lastToolbarItems = editor.toolbox.toolbars[ editor.toolbox.toolbars.length - 1 ].items;
    114                                                         lastToolbarItems[ lastToolbarItems.length - 1 ].focus();
     143                                                        if ( editor.toolbox.collapserId )
     144                                                                CKEDITOR.document.getById( editor.toolbox.collapserId ).focus();
     145                                                        else
     146                                                        {
     147                                                                var lastToolbarItems = editor.toolbox.toolbars[ editor.toolbox.toolbars.length - 1 ].items;
     148                                                                lastToolbarItems[ lastToolbarItems.length - 1 ].focus();
     149                                                        }
    115150                                                }
    116151
    117152                                                return false;
     
    215250
    216251                                                if ( editor.config.toolbarCanCollapse )
    217252                                                {
    218                                                         output.push( '<a class="cke_toolbox_collapser' );
     253                                                        var collapserId = editor.toolbox.collapserId = 'cke_' + CKEDITOR.tools.getNextNumber();
     254                                                        output.push( '<input type="button" class="cke_toolbox_collapser' );
    219255
    220256                                                        if ( !expanded )
    221257                                                                output.push( ' cke_toolbox_collapser_min' );
    222258
    223                                                         output.push( '" onclick="CKEDITOR.tools.callFunction(' + collapserFn + ',new CKEDITOR.dom.element(this))"></a>' );
     259                                                        output.push( '" onclick="CKEDITOR.tools.callFunction(' + collapserFn + ',new CKEDITOR.dom.element(this))"' +
     260                                                                        ' onkeydown="CKEDITOR.tools.callFunction(' + collapserKeystroke + ',new CKEDITOR.dom.event(event))"' +
     261                                                                        ' id="' + collapserId + '"' +
     262                                                                        '></input>' );
    224263                                                }
    225264
    226265                                                event.data.html += output.join( '' );
  • _source/skins/v2/toolbar.css

     
    1616        }
    1717}
    1818
    19 .cke_skin_v2 a.cke_toolbox_collapser,
    20 .cke_skin_v2 a:hover.cke_toolbox_collapser
     19.cke_skin_v2 input.cke_toolbox_collapser,
     20.cke_skin_v2 input:hover.cke_toolbox_collapser
    2121{
    2222        background-image: url(images/arrowtop.gif);
    2323        background-repeat: no-repeat;
     
    3030        cursor: pointer;
    3131}
    3232
    33 .cke_skin_v2 .cke_rtl a.cke_toolbox_collapser,
    34 .cke_skin_v2 .cke_rtl a:hover.cke_toolbox_collapser
     33.cke_skin_v2 .cke_rtl input.cke_toolbox_collapser,
     34.cke_skin_v2 .cke_rtl input:hover.cke_toolbox_collapser
    3535{
    3636        float: left;
    3737}
    3838
    39 .cke_skin_v2 a.cke_toolbox_collapser_min,
    40 .cke_skin_v2 a:hover.cke_toolbox_collapser_min
     39.cke_skin_v2 input.cke_toolbox_collapser_min,
     40.cke_skin_v2 input:hover.cke_toolbox_collapser_min
    4141{
    4242        background-image: url(images/arrowleft.gif);
    4343        margin: 2px;
    4444}
    4545
    46 .cke_skin_v2 .cke_rtl a.cke_toolbox_collapser_min,
    47 .cke_skin_v2 .cke_rtl a:hover.cke_toolbox_collapser_min
     46.cke_skin_v2 .cke_rtl input.cke_toolbox_collapser_min,
     47.cke_skin_v2 .cke_rtl input:hover.cke_toolbox_collapser_min
    4848{
    4949        background-image: url(images/arrowright.gif);
    5050}
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy