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