Changeset 4668


Ignore:
Timestamp:
12/11/09 12:30:16 (4 years ago)
Author:
garry.yao
Message:

Fixing #4521: enhancing dialog layout to support scalable with content size change.

Location:
CKEditor/trunk
Files:
11 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/CHANGES.html

    r4667 r4668  
    159159                <li><a href="http://dev.fckeditor.net/ticket/4543">#4543</a> : Fixed unable to move cursor between table and hr.</li> 
    160160                <li><a href="http://dev.fckeditor.net/ticket/4764">#4764</a> : Fixed wrong exception message when CKEDITOR.editor::append to non-existence element.</li> 
     161                <li><a href="http://dev.fckeditor.net/ticket/4521">#4521</a> : Fixed dialog layout in IE6/7 may have scroll-bar and other weird effects.</li> 
    161162                <li>Updated the following language files:<ul> 
    162163                        <li><a href="http://dev.fckeditor.net/ticket/3947">#3947</a> : Arabic;</li> 
  • CKEditor/trunk/_source/plugins/dialog/plugin.js

    r4635 r4668  
    810810                                                        expand : !!contents.expand, 
    811811                                                        padding : contents.padding, 
    812                                                         style : contents.style || 'width: 100%; height: 100%;' 
     812                                                        style : contents.style || 'width: 100%;' 
    813813                                                }, pageHtml ); 
    814814 
  • CKEditor/trunk/_source/plugins/image/dialogs/image.js

    r4441 r4668  
    443443                                                                                                        this.getDialog().dontResetSize = true; 
    444444 
    445                                                                                                         // In IE7 the dialog is being rendered improperly when loading 
    446                                                                                                         // an image with a long URL. So we need to delay it a bit. (#4122) 
    447                                                                                                         setTimeout( function() 
    448                                                                                                                 { 
    449                                                                                                                         field.setValue( url );          // And call this.onChange() 
    450                                                                                                                         // Manually set the initial value.(#4191) 
    451                                                                                                                         field.setInitValue(); 
    452                                                                                                                         field.focus(); 
    453                                                                                                                 }, 0 ); 
     445                                                                                                        field.setValue( url );          // And call this.onChange() 
     446                                                                                                        // Manually set the initial value.(#4191) 
     447                                                                                                        field.setInitValue(); 
     448                                                                                                        field.focus(); 
    454449                                                                                                } 
    455450                                                                                        }, 
  • CKEditor/trunk/_source/skins/kama/dialog.css

    r4571 r4668  
    88{ 
    99        visibility: visible; 
     10} 
     11 
     12/* Force Gecko to consider table as positioned */ 
     13.cke_skin_kama table.cke_dialog.cke_browser_gecko 
     14{ 
     15        display:block; 
    1016} 
    1117 
     
    1925        -webkit-border-radius: 5px; 
    2026        border-radius: 5px; 
     27 
     28        /* 'cke_dialog' element has been fixed positioned in all but IE6, while we 
     29                need it to be positioned to hold e.g. close button. */ 
     30        position: relative; 
     31        _position: static; 
    2132} 
    2233 
  • CKEditor/trunk/_source/skins/kama/mainui.css

    r3927 r4668  
    77{ 
    88        display: block; 
    9         _display: inline-block; 
    109} 
    1110 
  • CKEditor/trunk/_source/skins/kama/skin.js

    r4519 r4668  
    212212                                height = data.height, 
    213213                                dialog = data.dialog, 
    214                                 contents = dialog.parts.contents, 
    215                                 standardsMode = !CKEDITOR.env.quirks; 
     214                                contents = dialog.parts.contents; 
    216215 
    217216                        if ( data.skin != 'kama' ) 
     
    219218 
    220219                        contents.setStyles( 
    221                                 ( CKEDITOR.env.ie || ( CKEDITOR.env.gecko && CKEDITOR.env.version < 10900 ) ) ?         // IE && FF2 
    222                                         { 
    223                                                 width : width + 'px', 
    224                                                 height : height + 'px' 
    225                                         } 
    226                                 : 
    227                                         { 
    228                                                 // To avoid having scrollbars in the dialogs, we're 
    229                                                 // (for now) using the "min-xxx" properties, for 
    230                                                 // browsers which well support it (#3878). 
    231                                                 'min-width' : width + 'px', 
    232                                                 'min-height' : height + 'px' 
    233                                         }); 
    234  
    235                         if ( !CKEDITOR.env.ie ) 
    236                                 return; 
     220                                { 
     221                                        width : width + 'px', 
     222                                        height : height + 'px' 
     223                                }); 
    237224 
    238225                        // Fix the size of the elements which have flexible lengths. 
    239226                        setTimeout( function() 
    240227                                { 
    241                                         var body = contents.getParent(), 
    242                                                 innerDialog = body.getParent(); 
     228                                        var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ), 
     229                                                body = innerDialog.getChild( 0 ); 
    243230 
    244231                                        // tc 
  • CKEditor/trunk/_source/skins/office2003/dialog.css

    r4571 r4668  
    1010} 
    1111 
     12/* Force Gecko to consider table as positioned */ 
     13.cke_skin_office2003 table.cke_dialog.cke_browser_gecko 
     14{ 
     15        display:block; 
     16} 
     17 
    1218.cke_skin_office2003 .cke_dialog_body 
    1319{ 
     
    1622        margin-top: 2px; 
    1723        margin-bottom: 20px; 
     24        z-index: 1; 
     25 
     26        /* 'cke_dialog' element has been fixed positioned in all but IE6, while we  
     27                need it to be positioned to hold e.g. close button. */ 
    1828        position: relative; 
    19         z-index: 1; 
     29        _position: static; 
    2030} 
    2131 
  • CKEditor/trunk/_source/skins/office2003/skin.js

    r3983 r4668  
    3232                                height = data.height, 
    3333                                dialog = data.dialog, 
    34                                 standardsMode = !CKEDITOR.env.quirk; 
     34                                contents = dialog.parts.contents; 
    3535 
    3636                        if ( data.skin != 'office2003' ) 
    3737                                return; 
    3838 
    39                         dialog.parts.contents.setStyles( 
     39                        contents.setStyles( 
    4040                                { 
    4141                                        width : width + 'px', 
     
    4949                        var fixSize = function() 
    5050                                { 
    51                                         var content = dialog.parts.contents, 
    52                                                 body = content.getParent(), 
    53                                                 innerDialog = body.getParent(); 
     51                                        var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ), 
     52                                                body = innerDialog.getChild( 0 ); 
    5453 
    5554                                        // tc 
  • CKEditor/trunk/_source/skins/v2/dialog.css

    r4571 r4668  
    1010} 
    1111 
     12/* Force Gecko to consider table as positioned */ 
     13.cke_skin_v2 table.cke_dialog.cke_browser_gecko 
     14{ 
     15        display:block; 
     16} 
     17 
    1218.cke_skin_v2 .cke_dialog_body 
    1319{ 
     
    1622        margin-top: 2px; 
    1723        margin-bottom: 20px; 
     24        z-index: 1; 
     25 
     26        /* 'cke_dialog' element has been fixed positioned in all but IE6, while we 
     27                need it to be positioned to hold e.g. close button. */ 
    1828        position: relative; 
    19         z-index: 1; 
     29        _position: static; 
     30         
    2031} 
    2132 
  • CKEditor/trunk/_source/skins/v2/skin.js

    r3342 r4668  
    3232                                height = data.height, 
    3333                                dialog = data.dialog, 
    34                                 standardsMode = !CKEDITOR.env.quirk; 
     34                                contents = dialog.parts.contents; 
    3535 
    3636                        if ( data.skin != 'v2' ) 
    3737                                return; 
    3838 
    39                         dialog.parts.contents.setStyles( 
     39                        contents.setStyles( 
    4040                                { 
    4141                                        width : width + 'px', 
     
    4949                        setTimeout( function() 
    5050                                { 
    51                                         var content = dialog.parts.contents, 
    52                                                 body = content.getParent(), 
    53                                                 innerDialog = body.getParent(); 
     51                                        var innerDialog = dialog.parts.dialog.getChild( [ 0, 0, 0 ] ), 
     52                                                body = innerDialog.getChild( 0 ); 
    5453 
    5554                                        // tc 
  • CKEditor/trunk/_source/themes/default/theme.js

    r4440 r4668  
    103103                                                ' lang="', editor.langCode, '"' + 
    104104                                                '>' + 
    105  
    106                                                 '<div class="cke_dialog', ' ' + CKEDITOR.env.cssClass, 
     105                                                '<table class="cke_dialog', ' ' + CKEDITOR.env.cssClass, 
    107106                                                        ' cke_', editor.lang.dir, '" style="position:absolute">' + 
     107                                                        '<tr><td>' + 
    108108                                                        '<div class="%body">' + 
    109109                                                                '<div id="%title#" class="%title"></div>' + 
     
    112112                                                                '</div>' + 
    113113                                                                '<div id="%tabs#" class="%tabs"></div>' + 
    114                                                                 '<div id="%contents#" class="%contents"></div>' + 
     114                                                                  '<table class="%contents"><tr>' + 
     115                                                                  '<td id="%contents#" class="%contents"></td>' + 
     116                                                                  '</tr></table>' + 
    115117                                                                '<div id="%footer#" class="%footer"></div>' + 
    116118                                                        '</div>' + 
     
    123125                                                        '<div id="%bc#" class="%bc"></div>' + 
    124126                                                        '<div id="%br#" class="%br"></div>' + 
    125                                                 '</div>', 
     127                                                        '</td></tr>' + 
     128                                                '</table>', 
    126129 
    127130                                                //Hide the container when loading skins, later restored by skin css. 
     
    133136                                        .replace( /%/g, 'cke_dialog_' ) ); 
    134137 
    135                         var body = element.getChild( [ 0, 0 ] ); 
     138                        var body = element.getChild( [ 0, 0, 0, 0, 0 ] ), 
     139                                title = body.getChild( 0 ), 
     140                                close = body.getChild( 1 ); 
    136141 
    137142                        // Make the Title and Close Button unselectable. 
    138                         body.getChild( 0 ).unselectable(); 
    139                         body.getChild( 1 ).unselectable(); 
     143                        title.unselectable(); 
     144                        close.unselectable(); 
    140145 
    141146 
     
    145150                                { 
    146151                                        dialog          : element.getChild( 0 ), 
    147                                         title           : body.getChild( 0 ), 
    148                                         close           : body.getChild( 1 ), 
     152                                        title           : title, 
     153                                        close           : close, 
    149154                                        tabs            : body.getChild( 2 ), 
    150                                         contents        : body.getChild( 3 ), 
     155                                        contents        : body.getChild( [ 3, 0, 0, 0 ] ), 
    151156                                        footer          : body.getChild( 4 ) 
    152157                                } 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy