Ticket #7175: 7175_2.patch

File 7175_2.patch, 1.9 KB (added by Garry Yao, 8 years ago)
  • _source/plugins/floatpanel/plugin.js

     
    101101                                        block = panel.showBlock( name );
    102102
    103103                                this.allowBlur( false );
    104                                 isShowing = 1;
    105104
    106105                                // Record from where the focus is when open panel.
    107106                                this._.returnFocus = this._.editor.focusManager.hasFocus ? this._.editor : new CKEDITOR.dom.element( CKEDITOR.document.$.activeElement );
     
    166165                                                        if ( target.getName && target.getName() != 'iframe' )
    167166                                                                return;
    168167
    169                                                         if ( this.visible && !this._.activeChild && !isShowing )
     168                                                        if ( this.visible && !this._.activeChild )
    170169                                                        {
    171170                                                                // Panel close is caused by user's navigating away the focus, e.g. click outside the panel.
    172171                                                                // DO NOT restore focus in this case.
     
    302301                                                                        left : left + 'px'
    303302                                                                } );
    304303                                                        element.setOpacity( 1 );
    305                                                 } , this );
    306304
     305                                                // Necessary buffer time for IE to move focus into the iframe when host page is in a modal dialog. (#7175)
     306                                                CKEDITOR.tools.setTimeout( function() { iframe.$.contentWindow.focus(); },
     307                                                        CKEDITOR.env.ie && window.dialogArguments !== undefined ? 100 : 0 );
     308
     309                                                } , this );
    307310                                                panel.isLoaded ? panelLoad() : panel.onLoad = panelLoad;
    308311
    309                                                 // Set the panel frame focus, so the blur event gets fired.
    310                                                 CKEDITOR.tools.setTimeout( function()
    311                                                 {
    312                                                         iframe.$.contentWindow.focus();
    313                                                         // We need this get fired manually because of unfired focus() function.
    314                                                         this.allowBlur( true );
    315                                                 }, 0, this);
    316312                                        },  CKEDITOR.env.air ? 200 : 0, this);
    317313                                this.visible = 1;
    318314
    319315                                if ( this.onShow )
    320316                                        this.onShow.call( this );
    321317
    322                                 isShowing = 0;
    323318                        },
    324319
    325320                        hide : function( returnFocus )
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy