{name: 'note', tag: 'DIV', subtag: true, klass: 'note'},
],
input_event: function(event) {
- if (event.originalEvent.inputType != "insertParagraph") return true;
var sel = document.getSelection();
var anchorNode = sel.anchorNode;
+ if (sel.anchorNode.contentEditable === 'true') {
+ // when everything has been removed, add back <p><br></p>
+ var empty_p = document.createElement('P');
+ empty_p.appendChild(document.createElement('BR'));
+ if (anchorNode.childNodes.length) { // lone <br>
+ anchorNode.removeChild(anchorNode.childNodes[0]);
+ }
+ anchorNode.appendChild(empty_p);
+ var range = document.createRange();
+ range.setStart(empty_p, 0);
+ sel.removeAllRanges();
+ sel.addRange(range);
+ return;
+ }
+ if (event.originalEvent.inputType != "insertParagraph") return true;
var prev_p = sel.anchorNode.previousSibling;
if (! prev_p) return;
if (prev_p.tagName != 'P') {
prev_p = $(prev_p).parents('p')[0];
+ if (! prev_p || prev_p.tagName != 'P') return;
}
var title_match = prev_p.innerText.match(/^(h[1-6]). /);
if (title_match) {
function get_contenteditable_subnode(node) {
if (node === null) return null;
+ if (node.contentEditable === 'true') return node; // but we shouldn't arrive at root
if (node.parentNode.contentEditable === 'true') return node;
return get_contenteditable_subnode(node.parentNode);
}