Ticket #6100: 6100.patch

File 6100.patch, 3.2 KB (added by Tobiasz Cudnik, 10 years ago)
  • _source/plugins/indent/plugin.js

     
    371371                                        "       padding-left: 40px;" +
    372372                                        "}" );
    373373                        }
     374
     375                        // Register dirChanged listener.
     376                        editor.on( 'dirChanged', function( e )
     377                        {
     378                                var range = new CKEDITOR.dom.range( editor.document );
     379                                range.setStartBefore( e.data );
     380                                range.setEndAfter( e.data );
     381                               
     382                                var walker = new CKEDITOR.dom.walker( range ),
     383                                        node;
     384
     385                                while ( ( node = walker.next() ) )
     386                                {
     387                                        if ( node.type == CKEDITOR.NODE_ELEMENT )
     388                                        {
     389                                                // A child with dir defined is to be ignored.
     390                                                if ( !node.equals( e.data ) && node.hasAttribute( 'dir' ) )
     391                                                {
     392                                                        range.setStartAfter( node );
     393                                                        walker = new CKEDITOR.dom.walker( range );
     394                                                        continue;
     395                                                }
     396
     397                                                // Switch the margins.
     398                                                var marginLeft = node.getStyle( 'margin-right' ),
     399                                                        marginRight = node.getStyle( 'margin-left' );
     400
     401                                                marginLeft ? node.setStyle( 'margin-left', marginLeft ) : node.removeStyle( 'margin-left' );
     402                                                marginRight ? node.setStyle( 'margin-right', marginRight ) : node.removeStyle( 'margin-right' );
     403                                        }
     404                                }
     405                        });
    374406                },
    375407
    376408                requires : [ 'domiterator', 'list' ]
  • _source/plugins/bidi/plugin.js

     
    6666                // like a mirror. (#5910)
    6767                var dirAfter = element.getComputedStyle( 'direction' );
    6868                if ( dirAfter != dirBefore )
    69                 {
    70                         var range = new CKEDITOR.dom.range( element.getDocument() );
    71                         range.setStartBefore( element );
    72                         range.setEndAfter( element );
     69                        editor.fire( 'dirChanged', element );
    7370
    74                         var walker = new CKEDITOR.dom.walker( range );
    75 
    76                         var node;
    77                         while ( ( node = walker.next() ) )
    78                         {
    79                                 if ( node.type == CKEDITOR.NODE_ELEMENT )
    80                                 {
    81                                         // A child with dir defined is to be ignored.
    82                                         if ( !node.equals( element ) && node.hasAttribute( 'dir' ) )
    83                                         {
    84                                                 range.setStartAfter( node );
    85                                                 walker = new CKEDITOR.dom.walker( range );
    86                                                 continue;
    87                                         }
    88 
    89                                         // Switch the margins.
    90                                         var marginLeft = node.getStyle( 'margin-right' ),
    91                                                 marginRight = node.getStyle( 'margin-left' );
    92 
    93                                         marginLeft ? node.setStyle( 'margin-left', marginLeft ) : node.removeStyle( 'margin-left' );
    94                                         marginRight ? node.setStyle( 'margin-right', marginRight ) : node.removeStyle( 'margin-right' );
    95                                 }
    96                         }
    97                 }
    98 
    9971                editor.forceNextSelectionCheck();
    10072        }
    10173
  • _source/plugins/dialogadvtab/plugin.js

     
    3636                var attrName = this.att,
    3737                        value = this.getValue();
    3838
     39                // Broadcast Lang Dir change
     40                if ( attrName == 'dir' )
     41                {
     42                        var dir = element.getAttribute( attrName, value );
     43                        if ( dir != value )
     44                                this._.dialog._.editor.fire( 'dirChanged', element );
     45                }
     46
    3947                if ( value )
    4048                        element.setAttribute( attrName, value );
    4149                else
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy