Changeset 5246


Ignore:
Timestamp:
03/18/10 08:43:21 (5 years ago)
Author:
garry.yao
Message:

#5307: More robust dialog page hidding which take cares of tablist mode and single page style.

Location:
CKEditor/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • CKEditor/trunk/CHANGES.html

    r5245 r5246  
    7272                <li><a href="http://dev.fckeditor.net/ticket/4717">#4717</a> : 'Unlink' and 'Outdent' command buttons should be disabled on editor startup.</li> 
    7373                <li><a href="http://dev.fckeditor.net/ticket/5119">#5119</a> : Disabled command buttons are not being properly marked when focused.</li> 
     74                <li><a href="http://dev.fckeditor.net/ticket/5307">#5307</a> : Hide dialog page cause problem when there's only two remains.</li> 
    7475        </ul> 
    7576        <h3> 
  • CKEditor/trunk/_source/plugins/dialog/plugin.js

    r5215 r5246  
    336336                                processed = 1; 
    337337                        } 
    338                         else if ( keystroke == CKEDITOR.ALT + 121 && !me._.tabBarMode ) 
     338                        else if ( keystroke == CKEDITOR.ALT + 121 && !me._.tabBarMode && me.getPageCount() > 1 ) 
    339339                        { 
    340340                                // Alt-F10 puts focus into the current tab item in the tab bar. 
     
    894894                        page.setAttribute( 'aria-labelledby', tabId ); 
    895895 
    896                         // If only a single page exist, a different style is used in the central pane. 
    897                         if ( this._.pageCount === 0 ) 
    898                                 this.parts.dialog.addClass( 'cke_single_page' ); 
    899                         else 
    900                                 this.parts.dialog.removeClass( 'cke_single_page' ); 
    901  
    902896                        // Take records for the tabs and elements created. 
    903897                        this._.tabs[ contents.id ] = [ tab, page ]; 
    904898                        this._.tabIdList.push( contents.id ); 
    905                         this._.pageCount++; 
     899                        !contents.hidden && this._.pageCount++; 
    906900                        this._.lastTab = tab; 
     901                        this.updateStyle(); 
    907902 
    908903                        var contentMap = this._.contents[ contents.id ] = {}, 
     
    962957                }, 
    963958 
     959                // Dialog state-specific style updates. 
     960                updateStyle : function() 
     961                { 
     962                        // If only a single page shown, a different style is used in the central pane. 
     963                        this.parts.dialog[ ( this._.pageCount === 1 ? 'add' : 'remove' ) + 'Class' ]( 'cke_single_page' ); 
     964                }, 
     965 
    964966                /** 
    965967                 * Hides a page's tab away from the dialog. 
     
    971973                { 
    972974                        var tab = this._.tabs[id] && this._.tabs[id][0]; 
    973                         if ( !tab ) 
     975                        if ( !tab || this._.pageCount == 1 ) 
    974976                                return; 
     977                        // Switch to other tab first when we're hiding the active tab. 
     978                        else if ( id == this._.currentTabId ) 
     979                                this.selectPage( getPreviousVisibleTab.call( this ) ); 
     980 
    975981                        tab.hide(); 
     982                        this._.pageCount--; 
     983                        this.updateStyle(); 
    976984                }, 
    977985 
     
    988996                                return; 
    989997                        tab.show(); 
     998                        this._.pageCount++; 
     999                        this.updateStyle(); 
    9901000                }, 
    9911001 
Note: See TracChangeset for help on using the changeset viewer.
© 2003 – 2012 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy