Ticket #7932: 7932.patch

File 7932.patch, 3.8 KB (added by Garry Yao, 8 years ago)
  • _source/plugins/clipboard/plugin.js

     
    226226                // Wait a while and grab the pasted contents
    227227                window.setTimeout( function()
    228228                {
    229                         mode == 'text' && CKEDITOR.env.gecko && editor.focusGrabber.focus();
     229                        // Gecko need to move focus back from the textarea
     230                        // to blink the cursor. (#5684)
     231                        if ( mode == 'text' && CKEDITOR.env.gecko )
     232                                editor.document.getBody().focus();
     233
    230234                        pastebin.remove();
    231235                        editor.removeListener( 'selectionChange', cancel );
    232236
  • _source/plugins/wysiwygarea/plugin.js

     
    703703                                                        } );
    704704                                                }
    705705
    706                                                 // IE standard compliant in editing frame doesn't focus the editor when
    707                                                 // clicking outside actual content, manually apply the focus. (#1659)
    708                                                 if ( editable &&
    709                                                                 CKEDITOR.env.ie && domDocument.$.compatMode == 'CSS1Compat'
    710                                                                 || CKEDITOR.env.gecko
    711                                                                 || CKEDITOR.env.opera )
    712                                                 {
    713                                                         var htmlElement = domDocument.getDocumentElement();
    714                                                         htmlElement.on( 'mousedown', function( evt )
    715                                                         {
    716                                                                 // Setting focus directly on editor doesn't work, we
    717                                                                 // have to use here a temporary element to 'redirect'
    718                                                                 // the focus.
    719                                                                 if ( evt.data.getTarget().equals( htmlElement ) )
    720                                                                 {
    721                                                                         if ( CKEDITOR.env.gecko && CKEDITOR.env.version >= 10900 )
    722                                                                                 blinkCursor();
    723                                                                         focusGrabber.focus();
    724                                                                 }
    725                                                         } );
    726                                                 }
    727 
    728706                                                var focusTarget = CKEDITOR.env.ie ? iframe : domWindow;
    729707                                                focusTarget.on( 'blur', function()
    730708                                                        {
     
    12051183                                        });
    12061184                        }
    12071185
    1208                         // Create an invisible element to grab focus.
    1209                         if ( CKEDITOR.env.gecko || CKEDITOR.env.ie || CKEDITOR.env.opera )
    1210                         {
    1211                                 var focusGrabber;
    1212                                 editor.on( 'uiReady', function()
    1213                                 {
    1214                                         focusGrabber = editor.container.append( CKEDITOR.dom.element.createFromHtml(
    1215                                                 // Use 'span' instead of anything else to fly under the screen-reader radar. (#5049)
    1216                                                 '<span tabindex="-1" style="position:absolute;" role="presentation"></span>' ) );
    1217 
    1218                                         focusGrabber.on( 'focus', function()
    1219                                                 {
    1220                                                         editor.focus();
    1221                                                 } );
    1222 
    1223                                         editor.focusGrabber = focusGrabber;
    1224                                 } );
    1225                                 editor.on( 'destroy', function()
    1226                                 {
    1227                                         CKEDITOR.tools.removeFunction( contentDomReadyHandler );
    1228                                         focusGrabber.clearCustomData();
    1229                                         delete editor.focusGrabber;
    1230                                 } );
    1231                         }
    1232 
    12331186                        // Disable form elements editing mode provided by some browers. (#5746)
    12341187                        editor.on( 'insertElement', function ( evt )
    12351188                        {
  • _source/plugins/selection/plugin.js

     
    399399                                                                saveSelection();
    400400                                                        });
    401401
     402                                                // When content doc is in standards mode, IE doesn't focus the editor when
     403                                                // clicking on outside body (on html element) content, manually apply the
     404                                                // selection helps. (#1659, #7932)
     405                                                html.on( 'mouseup', function()
     406                                                {
     407                                                        var sel = CKEDITOR.document.$.selection,
     408                                                                range = sel.createRange();
     409                                                        // The selection range is reported on host, but actually it should applies to the content doc.
     410                                                        if ( sel.type != 'None' && range.parentElement().ownerDocument == doc.$ )
     411                                                                range.select();
     412                                                } );
    402413
    403414                                                // IE is the only to provide the "selectionchange"
    404415                                                // event.
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy