/*\r
-Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
+Copyright (c) 2003-2012, CKSource - Frederico Knabben. All rights reserved.\r
For licensing, see LICENSE.html or http://ckeditor.com/license\r
*/\r
\r
\r
function onSelectionChange( evt )\r
{\r
+ if ( evt.editor.readOnly )\r
+ return null;\r
+\r
var editor = evt.editor,\r
elementPath = evt.data.path,\r
list = elementPath && elementPath.contains( listNodeNames ),\r
\r
function isListItem( node )\r
{\r
- return node.type = CKEDITOR.NODE_ELEMENT && node.is( 'li' );\r
+ return node.type == CKEDITOR.NODE_ELEMENT && node.is( 'li' );\r
}\r
\r
indentCommand.prototype = {\r
}\r
}\r
});\r
+\r
+ editor.on( 'key', function( evt )\r
+ {\r
+ // Backspace at the beginning of list item should outdent it.\r
+ if ( editor.mode == 'wysiwyg' && evt.data.keyCode == 8 )\r
+ {\r
+ var sel = editor.getSelection(),\r
+ range = sel.getRanges()[ 0 ],\r
+ li;\r
+\r
+ if ( range.collapsed &&\r
+ ( li = range.startContainer.getAscendant( 'li', 1 ) ) &&\r
+ range.checkBoundaryOfElement( li, CKEDITOR.START ) )\r
+ {\r
+ editor.execCommand( 'outdent' );\r
+ evt.cancel();\r
+ }\r
+ }\r
+ });\r
},\r
\r
requires : [ 'domiterator', 'list' ]\r