Ticket #6100: 6100_2.patch

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

     
    385385                                        "       padding-left: 40px;" +
    386386                                        "}" );
    387387                        }
     388
     389                        // Register dirChanged listener.
     390                        editor.on( 'dirChanged', function( e )
     391                        {
     392                                var range = new CKEDITOR.dom.range( editor.document );
     393                                range.setStartBefore( e.data );
     394                                range.setEndAfter( e.data );
     395                               
     396                                var walker = new CKEDITOR.dom.walker( range ),
     397                                        node;
     398
     399                                while ( ( node = walker.next() ) )
     400                                {
     401                                        if ( node.type == CKEDITOR.NODE_ELEMENT )
     402                                        {
     403                                                // A child with dir defined is to be ignored.
     404                                                if ( !node.equals( e.data ) && node.hasAttribute( 'dir' ) )
     405                                                {
     406                                                        range.setStartAfter( node );
     407                                                        walker = new CKEDITOR.dom.walker( range );
     408                                                        continue;
     409                                                }
     410
     411                                                // Switch the margins.
     412                                                var marginLeft = node.getStyle( 'margin-right' ),
     413                                                        marginRight = node.getStyle( 'margin-left' );
     414
     415                                                marginLeft ? node.setStyle( 'margin-left', marginLeft ) : node.removeStyle( 'margin-left' );
     416                                                marginRight ? node.setStyle( 'margin-right', marginRight ) : node.removeStyle( 'margin-right' );
     417                                        }
     418                                }
     419                        });
    388420                },
    389421
    390422                requires : [ 'domiterator', 'list' ]
  • _source/plugins/bidi/plugin.js

     
    6767                // like a mirror. (#5910)
    6868                var dirAfter = element.getComputedStyle( 'direction' );
    6969                if ( dirAfter != dirBefore )
    70                 {
    71                         var range = new CKEDITOR.dom.range( element.getDocument() );
    72                         range.setStartBefore( element );
    73                         range.setEndAfter( element );
     70                        editor.fire( 'dirChanged', element );
    7471
    75                         var walker = new CKEDITOR.dom.walker( range );
    76 
    77                         var node;
    78                         while ( ( node = walker.next() ) )
    79                         {
    80                                 if ( node.type == CKEDITOR.NODE_ELEMENT )
    81                                 {
    82                                         // A child with dir defined is to be ignored.
    83                                         if ( !node.equals( element ) && node.hasAttribute( 'dir' ) )
    84                                         {
    85                                                 range.setStartAfter( node );
    86                                                 walker = new CKEDITOR.dom.walker( range );
    87                                                 continue;
    88                                         }
    89 
    90                                         // Switch the margins.
    91                                         var marginLeft = node.getStyle( 'margin-right' ),
    92                                                 marginRight = node.getStyle( 'margin-left' );
    93 
    94                                         marginLeft ? node.setStyle( 'margin-left', marginLeft ) : node.removeStyle( 'margin-left' );
    95                                         marginRight ? node.setStyle( 'margin-right', marginRight ) : node.removeStyle( 'margin-right' );
    96                                 }
    97                         }
    98                 }
    99 
    10072                editor.forceNextSelectionCheck();
    10173        }
    10274
  • _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 && element.getParent() )
     44                                        this._.dialog._.editor.fire( 'dirChanged', element );
     45                }
     46
    3947                if ( value )
    4048                        element.setAttribute( attrName, value );
    4149                else
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy