Ticket #6173: 6173.patch

File 6173.patch, 1.9 KB (added by Paweł Horzela, 14 years ago)

Patch

  • _source/plugins/list/plugin.js

     
    693693                        // Register the state changing handlers.
    694694                        editor.on( 'selectionChange', CKEDITOR.tools.bind( onSelectionChange, numberedListCommand ) );
    695695                        editor.on( 'selectionChange', CKEDITOR.tools.bind( onSelectionChange, bulletedListCommand ) );
     696
     697                        // Registering keydown to fix 'delete' issue in IE (#6173).
     698                        if ( CKEDITOR.env.ie && CKEDITOR.env.version == 8 )
     699                        {
     700                                editor.on( 'contentDom', function()
     701                                        {
     702                                                editor.document.on( 'keydown', function( evt )
     703                                                        {
     704                                                                var keyCode = evt.data.getKeystroke();
     705                                                               
     706                                                                // Backspace OR Delete.
     707                                                                if ( keyCode in { 8 : 1, 46 : 1 } )
     708                                                                {
     709                                                                        var range = editor.getSelection().getRanges()[ 0 ];
     710                                                                        var block = new CKEDITOR.dom.elementPath( range.startContainer ).block;
     711                                                                        if( block
     712                                                                                && ( block.is( 'li' ) || block.getParent().is( 'li' ) )
     713                                                                                && ( keyCode == 8 ? range.checkStartOfBlock() : range.checkEndOfBlock() )
     714                                                                                && ( keyCode == 8 ? block.hasPrevious() : block.hasNext() ) )
     715                                                                        {
     716                                                                                if ( keyCode == 8 )
     717                                                                                {
     718                                                                                        var prevBlock = block.getPrevious();
     719                                                                                        range.moveToElementEditEnd( prevBlock );
     720                                                                                        prevBlock.appendHtml( block.getHtml() );
     721                                                                                        block.remove();
     722                                                                                }
     723                                                                                else
     724                                                                                {
     725                                                                                        var nextBlock = block.getNext();
     726                                                                                        range.moveToElementEditEnd( block );
     727                                                                                        block.appendHtml( nextBlock.getHtml() );
     728                                                                                        nextBlock.remove();
     729                                                                                }
     730
     731                                                                                evt.data.preventDefault();
     732                                                                                range.select();
     733                                                                        }
     734                                                                }
     735                                                        });
     736                                        });
     737                        }
    696738                },
    697739
    698740                afterInit : function ( editor )
© 2003 – 2022, CKSource sp. z o.o. sp.k. All rights reserved. | Terms of use | Privacy policy