Ticket #6473: 6473.patch

File 6473.patch, 2.2 KB (added by Garry Yao, 14 years ago)
  • _source/plugins/wysiwygarea/plugin.js

     
    10001000                        // Switch on design mode for a short while and close it after then.
    10011001                        function blinkCursor( retry )
    10021002                        {
    1003                                 CKEDITOR.tools.tryThese(
    1004                                         function()
    1005                                         {
    1006                                                 editor.document.$.designMode = 'on';
    1007                                                 setTimeout( function()
    1008                                                 {
    1009                                                         editor.document.$.designMode = 'off';
    1010                                                         if ( CKEDITOR.currentInstance == editor )
    1011                                                                 editor.document.getBody().focus();
    1012                                                 }, 50 );
    1013                                         },
    1014                                         function()
    1015                                         {
    1016                                                 // The above call is known to fail when parent DOM
    1017                                                 // tree layout changes may break design mode. (#5782)
    1018                                                 // Refresh the 'contentEditable' is a cue to this.
    1019                                                 editor.document.$.designMode = 'off';
    1020                                                 var body = editor.document.getBody();
    1021                                                 body.setAttribute( 'contentEditable', false );
    1022                                                 body.setAttribute( 'contentEditable', true );
    1023                                                 // Try it again once..
    1024                                                 !retry && blinkCursor( 1 );
    1025                                         });
     1003                                // Avoid toggling design mode in an event thread,
     1004                                // which will cause host page scrolling.(#6473)
     1005                                setTimeout( function ()
     1006                                 {
     1007                                         CKEDITOR.tools.tryThese(
     1008                                                 function()
     1009                                                 {
     1010                                                         editor.document.$.designMode = 'on';
     1011                                                         setTimeout( function()
     1012                                                         {
     1013                                                                 editor.document.$.designMode = 'off';
     1014                                                                 if ( CKEDITOR.currentInstance == editor )
     1015                                                                         editor.document.getBody().focus();
     1016                                                         }, 50 );
     1017                                                 },
     1018                                                 function()
     1019                                                 {
     1020                                                         // The above call is known to fail when parent DOM
     1021                                                         // tree layout changes may break design mode. (#5782)
     1022                                                         // Refresh the 'contentEditable' is a cue to this.
     1023                                                         editor.document.$.designMode = 'off';
     1024                                                         var body = editor.document.getBody();
     1025                                                         body.setAttribute( 'contentEditable', false );
     1026                                                         body.setAttribute( 'contentEditable', true );
     1027                                                         // Try it again once..
     1028                                                         !retry && blinkCursor( 1 );
     1029                                                 });
     1030                                 }, 0 );
    10261031                        }
    10271032
    10281033                        // Create an invisible element to grab focus.
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy