Ticket #7430: 7430_2.patch

File 7430_2.patch, 2.7 KB (added by Frederico Caldeira Knabben, 12 years ago)
  • _source/plugins/image/plugin.js

     
    5959                                        return { image : CKEDITOR.TRISTATE_OFF };
    6060                                });
    6161                }
     62
     63                editor.on( 'align', function( ev )
     64                        {
     65                                var sel = ev.data.selection,
     66                                        value = ev.data.value;
     67
     68                                if ( sel.getType() == CKEDITOR.SELECTION_ELEMENT )
     69                                {
     70                                        var element = sel.getSelectedElement(),
     71                                                align = getImageAlignment( element );
     72
     73                                        if ( align !== false )
     74                                        {
     75                                                if ( align == value )
     76                                                        element.removeStyle( 'float' );
     77                                                else
     78                                                        element.setStyle( 'float', value );
     79
     80                                                ev.cancel();
     81                                        }
     82                                }
     83                        });
     84
     85                editor.on( 'getAlignState', function( ev )
     86                        {
     87                                var element = ev.data.path.lastElement,
     88                                        value = ev.data.value,
     89                                        align = getImageAlignment( element );
     90
     91                                if ( align !== false )
     92                                {
     93                                        ev.data.state =
     94                                                ( align == value ) ? CKEDITOR.TRISTATE_ON :
     95                                                ( value == 'right' || value == 'left' ) ? CKEDITOR.TRISTATE_OFF :
     96                                                CKEDITOR.TRISTATE_DISABLED;
     97                                }
     98                        });
     99
     100                function getImageAlignment( element )
     101                {
     102                        var align = false;
     103
     104                        if ( element.is( 'img' ) && !element.data( 'cke-real-element-type' ) )
     105                        {
     106                                align = element.getStyle( 'float' );
     107                                if ( align == 'inherit' || align == 'none' )
     108                                        align = 0;
     109
     110                                if ( !align )
     111                                        align = element.getAttribute( 'align' );
     112                        }
     113
     114                        return align;
     115                }
    62116        }
    63117} );
    64118
  • _source/plugins/justify/plugin.js

     
    1111{
    1212        function getState( editor, path )
    1313        {
    14                 var firstBlock = path.block || path.blockLimit;
     14                var firstBlock = path.block || path.blockLimit,
     15                        value = this.value,
     16                        data = { value : value, path : path, state : -1 };
    1517
     18                editor.fire( 'getAlignState', data );
     19
     20                if ( data.state != -1 )
     21                        return data.state;
     22
    1623                if ( !firstBlock || firstBlock.getName() == 'body' )
    1724                        return CKEDITOR.TRISTATE_OFF;
    1825
    19                 return ( getAlignment( firstBlock, editor.config.useComputedState ) == this.value ) ?
     26                return ( getAlignment( firstBlock, editor.config.useComputedState ) == value ) ?
    2027                        CKEDITOR.TRISTATE_ON :
    2128                        CKEDITOR.TRISTATE_OFF;
    2229        }
     
    147154                        if ( !selection )
    148155                                return;
    149156
     157                        if ( editor.fire( 'align', { value : this.value, selection : selection } ) === true )
     158                                return;
     159
    150160                        var bookmarks = selection.createBookmarks(),
    151161                                ranges = selection.getRanges( true );
    152162
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy