From d8bbbb0e0f69e7e1048ccc9f4f11755af476378e Mon Sep 17 00:00:00 2001 From: Jason Chen Date: Sat, 21 Feb 2015 17:34:49 -0800 Subject: [PATCH] Fixes #286 --- src/modules/keyboard.coffee | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/modules/keyboard.coffee b/src/modules/keyboard.coffee index bdbb523fff..46a41dd943 100644 --- a/src/modules/keyboard.coffee +++ b/src/modules/keyboard.coffee @@ -45,12 +45,19 @@ class Keyboard _initDeletes: -> this.addHotkey([dom.KEYS.DELETE, dom.KEYS.BACKSPACE], (range, hotkey) => - if range? and @quill.getLength() > 1 + if range? and @quill.getLength() > 0 if range.start != range.end @quill.deleteText(range.start, range.end, Quill.sources.USER) else - start = if (hotkey.key == dom.KEYS.BACKSPACE) then range.start - 1 else range.start - @quill.deleteText(start, start + 1, Quill.sources.USER) if start >= 0 + if hotkey.key == dom.KEYS.BACKSPACE + [line, offset] = @quill.editor.doc.findLineAt(range.start) + if offset == 0 and (line.formats.bullet or line.formats.list) + format = if line.format.bullet then 'bullet' else 'list' + @quill.formatLine(range.start, range.start, format, false) + else if range.start > 0 + @quill.deleteText(range.start - 1, range.start, Quill.sources.USER) + else if range.start < @quill.getLength() + @quill.deleteText(range.start, range.start + 1, Quill.sources.USER) return false )