| | 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 | } |