Ticket #3079: 3079.patch

File 3079.patch, 4.3 KB (added by arczi, 5 years ago)
  • _source/lang/en.js

     
    2727         */ 
    2828        dir : 'ltr', 
    2929 
     30        // Toolbar buttons states. 
     31        stateNormal             :       '%1', 
     32        stateOn                 :       '%1 (On)', 
     33        stateDisabled   :       '%1 (Disabled)', 
     34 
    3035        // Toolbar buttons without dialogs. 
    3136        source                  : 'Source', 
    3237        newPage                 : 'New Page', 
  • _source/plugins/button/plugin.js

     
    102102                var env = CKEDITOR.env; 
    103103 
    104104                var id = this._.id = 'cke_' + CKEDITOR.tools.getNextNumber(); 
     105                this._.editor = editor; 
    105106 
    106107                var instance = 
    107108                { 
     
    148149                if ( this.className ) 
    149150                        classes += ' ' + this.className; 
    150151 
     152                var stateText = 'stateNormal'; 
     153                if ( this._.state == CKEDITOR.TRISTATE_DISABLED ) 
     154                        stateText = 'stateDisabled'; 
     155                else if ( this._.state == CKEDITOR.TRISTATE_ON ) 
     156                        stateText = 'stateOn'; 
     157 
     158                var title = editor.lang[ stateText ].replace( /%1/, this.title ); 
     159 
    151160                output.push( 
    152161                        '<span class="cke_button">', 
    153162                        '<a id="', id, '"' + 
    154163                                ' class="', classes, '" href="javascript:void(\'', ( this.title || '' ).replace( "'", '' ), '\')"' + 
    155                                 ' title="', this.title, '"' + 
     164                                ' title="', title, '"' + 
    156165                                ' tabindex="-1"' + 
    157166                                ' hidefocus="true"' ); 
    158167 
     
    199208                if ( this._.state == state ) 
    200209                        return; 
    201210 
    202                 CKEDITOR.document.getById( this._.id ).setState( state ); 
     211                // #3079. Change button title. 
     212                var stateText = 'stateNormal'; 
     213                if ( state == CKEDITOR.TRISTATE_DISABLED ) 
     214                        stateText = 'stateDisabled'; 
     215                else if ( state == CKEDITOR.TRISTATE_ON ) 
     216                        stateText = 'stateOn'; 
    203217 
    204218                this._.state = state; 
     219 
     220                var title = this._.editor.lang[ stateText ].replace( /%1/, this.title ), 
     221                        element = CKEDITOR.document.getById( this._.id ); 
     222 
     223                if ( !element ) 
     224                        element = this.document.getById( 'cke_' + this.id ); 
     225 
     226                element.setState( state ); 
     227                element.setAttribute( 'title', title ); 
     228                if ( element.getLast().getName() == 'a' )                               // Update link title. 
     229                        element.getLast().setAttribute( 'title', title ); 
    205230        } 
    206231}; 
    207232 
  • _source/plugins/panelbutton/plugin.js

     
    6161                render : function( editor, output ) 
    6262                { 
    6363                        var id = this._.id = 'cke_' + CKEDITOR.tools.getNextNumber(); 
     64                        this._.editor = editor; 
    6465 
    6566                        var instance = 
    6667                        { 
  • _source/plugins/richcombo/plugin.js

     
    6969                renderHtml : function( editor ) 
    7070                { 
    7171                        var output = []; 
     72                        this._.editor = editor; 
    7273                        this.render( editor, output ); 
    7374                        return output.join( '' ); 
    7475                }, 
     
    161162                        if ( this.className ) 
    162163                                output.push( ' class="', this.className, ' cke_off"'); 
    163164 
     165                        var stateText = 'stateNormal'; 
     166                        if ( this._.state == CKEDITOR.TRISTATE_DISABLED ) 
     167                                stateText = 'stateDisabled'; 
     168                        else if ( this._.state == CKEDITOR.TRISTATE_ON ) 
     169                                stateText = 'stateOn'; 
     170 
     171                        var title = editor.lang[ stateText ].replace( /%1/, this.title ); 
     172 
    164173                        output.push( 
    165174                                '>' + 
    166175                                        '<span class=cke_label>', this.label, '</span>' + 
    167                                         '<a hidefocus=true title="', this.title, '" tabindex="-1" href="javascript:void(\'', this.label, '\')"' ); 
     176                                        '<a hidefocus=true title="', title, '" tabindex="-1" href="javascript:void(\'', this.label, '\')"' ); 
    168177 
    169178                        // Some browsers don't cancel key events in the keydown but in the 
    170179                        // keypress. 
     
    195204                        if ( this.onRender ) 
    196205                                this.onRender(); 
    197206                                 
     207                        this._.editor = editor; 
     208 
    198209                        return instance; 
    199210                }, 
    200211 
     
    322333                        this._.list.commit(); 
    323334                }, 
    324335 
    325                 setState : function( state ) 
    326                 { 
    327                         if ( this._.state == state ) 
    328                                 return; 
    329  
    330                         this.document.getById( 'cke_' + this.id ).setState( state ); 
    331  
    332                         this._.state = state; 
    333                 } 
     336                setState : CKEDITOR.ui.button.prototype.setState 
    334337        } 
    335338}); 
    336339 
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy