Ticket #8393: 8393.patch

File 8393.patch, 5.7 KB (added by Garry Yao, 8 years ago)
  • _source/plugins/selection/plugin.js

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
     
    341341                                                        restoreEnabled = 1;
    342342                                                });
    343343
    344                                                 // In IE6/7 the blinking cursor appears, but contents are
    345                                                 // not editable. (#5634)
    346                                                 if ( CKEDITOR.env.ie && ( CKEDITOR.env.ie7Compat || CKEDITOR.env.version < 8 || CKEDITOR.env.quirks ) )
    347                                                 {
    348                                                         // The 'click' event is not fired when clicking the
    349                                                         // scrollbars, so we can use it to check whether
    350                                                         // the empty space following <body> has been clicked.
    351                                                         html.on( 'click', function( evt )
    352                                                         {
    353                                                                 if ( evt.data.getTarget().getName() == 'html' )
    354                                                                         editor.getSelection().getRanges()[ 0 ].select();
    355                                                         });
    356                                                 }
    357 
    358344                                                var scroll;
    359345                                                // IE fires the "selectionchange" event when clicking
    360346                                                // inside a selection. We don't want to capture that.
     
    399385                                                                saveSelection();
    400386                                                        });
    401387
     388                                                if ( CKEDITOR.env.ie7Compat || CKEDITOR.env.ie6Compat )
     389                                                {
     390                                                        html.$.unselectable = 'on';
     391                                                        // The 'click' event is not fired when clicking the
     392                                                        // scrollbars, so we can use it to check whether
     393                                                        // the empty space following <body> has been clicked.
     394                                                        html.on( 'click', function( evt )
     395                                                        {
     396                                                                if ( evt.data.getTarget().getName() != 'html' || editor.focusManager.hasFocus )
     397                                                                        return;
     398
     399                                                                editor.focus();
     400
     401                                                                // Manually trigger range restore.
     402                                                                if ( savedRange )
     403                                                                        body.focus();
     404                                                                // Without a selection, the cursor blinks, but contents are not editable. (#5634)
     405                                                                else
     406                                                                        editor.getSelection().getRanges()[ 0 ].select();
     407                                                        });
     408                                                }
     409
     410
     411                                                if ( CKEDITOR.env.ie8 )
     412                                                {
     413                                                        // When content doc is in standards mode, IE doesn't focus the editor when
     414                                                        // clicking on outside body (on html element) content, manually apply the
     415                                                        // selection helps. (#1659, #7932)
     416                                                        html.on( 'mouseup', function( evt )
     417                                                        {
     418                                                                if ( evt.data.getTarget().getName() == 'html' )
     419                                                                {
     420                                                                        var sel = CKEDITOR.document.$.selection,
     421                                                                                range = sel.createRange();
     422                                                                        // The selection range is reported on host, but actually it should applies to the content doc.
     423                                                                        if ( sel.type != 'None' && range.parentElement().ownerDocument == doc.$ )
     424                                                                                range.select();
     425                                                                }
     426                                                        } );
     427                                                }
    402428
    403429                                                // IE is the only to provide the "selectionchange"
    404430                                                // event.
  • _source/plugins/wysiwygarea/plugin.js

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
     
    689689                                                        } );
    690690                                                }
    691691
    692                                                 // IE standard compliant in editing frame doesn't focus the editor when
    693                                                 // clicking outside actual content, manually apply the focus. (#1659)
    694                                                 if ( editable &&
    695                                                                 CKEDITOR.env.ie && domDocument.$.compatMode == 'CSS1Compat'
    696                                                                 || CKEDITOR.env.gecko
    697                                                                 || CKEDITOR.env.opera )
    698                                                 {
    699                                                         var htmlElement = domDocument.getDocumentElement();
    700                                                         htmlElement.on( 'mousedown', function( evt )
    701                                                         {
    702                                                                 // Setting focus directly on editor doesn't work, we
    703                                                                 // have to use here a temporary element to 'redirect'
    704                                                                 // the focus.
    705                                                                 if ( evt.data.getTarget().equals( htmlElement ) )
    706                                                                 {
    707                                                                         if ( CKEDITOR.env.gecko && CKEDITOR.env.version >= 10900 )
    708                                                                                 blinkCursor();
    709                                                                         focusGrabber.focus();
    710                                                                 }
    711                                                         } );
    712                                                 }
    713 
    714692                                                var focusTarget = CKEDITOR.env.ie ? iframe : domWindow;
    715693                                                focusTarget.on( 'blur', function()
    716694                                                        {
     
    11961174                                                body.setAttribute( 'contentEditable', true );
    11971175                                                // Try it again once..
    11981176                                                !retry && blinkCursor( 1 );
    1199                                         });
    1200                         }
    1201 
    1202                         // Create an invisible element to grab focus.
    1203                         if ( CKEDITOR.env.gecko || CKEDITOR.env.ie || CKEDITOR.env.opera )
    1204                         {
    1205                                 var focusGrabber;
    1206                                 editor.on( 'uiReady', function()
    1207                                 {
    1208                                         focusGrabber = editor.container.append( CKEDITOR.dom.element.createFromHtml(
    1209                                                 // Use 'span' instead of anything else to fly under the screen-reader radar. (#5049)
    1210                                                 '<span tabindex="-1" style="position:absolute;" role="presentation"></span>' ) );
    1211 
    1212                                         focusGrabber.on( 'focus', function()
    1213                                                 {
    1214                                                         editor.focus();
    1215                                                 } );
    1216 
    1217                                         editor.focusGrabber = focusGrabber;
    1218                                 } );
    1219                                 editor.on( 'destroy', function()
    1220                                 {
    1221                                         CKEDITOR.tools.removeFunction( contentDomReadyHandler );
    1222                                         focusGrabber.clearCustomData();
    1223                                         delete editor.focusGrabber;
    1224                                 } );
     1177                                        });
    12251178                        }
    12261179
    12271180                        // Disable form elements editing mode provided by some browers. (#5746)
  • _source/plugins/clipboard/plugin.js

    IDEA additional info:
    Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
    <+>UTF-8
     
    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
© 2003 – 2019 CKSource – Frederico Knabben. All rights reserved. | Terms of use | Privacy policy