This gets as one step undo
if(Object.keys(cursor.getPosition()).length === 0) {
var currentElement = canvas.getCurrentNodeElement();
if(currentElement) {
if(Object.keys(cursor.getPosition()).length === 0) {
var currentElement = canvas.getCurrentNodeElement();
if(currentElement) {
+ canvas.wlxmlDocument.startTransaction();
added = currentElement.data('wlxmlNode').after({
tag: currentElement.getWlxmlTag() || 'div',
attrs: {'class': currentElement.getWlxmlClass() || 'p'}
});
added.append({text:''});
added = currentElement.data('wlxmlNode').after({
tag: currentElement.getWlxmlTag() || 'div',
attrs: {'class': currentElement.getWlxmlClass() || 'p'}
});
added.append({text:''});
+ canvas.wlxmlDocument.endTransaction();
canvas.setCurrentElement(utils.findCanvasElement(added), {caretTo: 'start'});
}
return;
canvas.setCurrentElement(utils.findCanvasElement(added), {caretTo: 'start'});
}
return;
if(element instanceof documentElement.DocumentTextElement) {
element = element.parent();
}
if(element instanceof documentElement.DocumentTextElement) {
element = element.parent();
}
+
+ canvas.wlxmlDocument.startTransaction();
added = element.data('wlxmlNode').after(
{tagName: element.getWlxmlTag() || 'div', attrs: {'class': element.getWlxmlClass() || 'p'}}
);
added.append({text: ''});
added = element.data('wlxmlNode').after(
{tagName: element.getWlxmlTag() || 'div', attrs: {'class': element.getWlxmlClass() || 'p'}}
);
added.append({text: ''});
+ canvas.wlxmlDocument.endTransaction();
canvas.setCurrentElement(utils.findCanvasElement(added), {caretTo: 'start'});
} else {
canvas.setCurrentElement(utils.findCanvasElement(added), {caretTo: 'start'});
} else {
keydown: function(event, canvas) {
var cursor = canvas.getCursor(),
position = canvas.getCursor().getPosition(),
keydown: function(event, canvas) {
var cursor = canvas.getCursor(),
position = canvas.getCursor().getPosition(),
- element = position.element;
+ element = position.element,
+ node = element.data('wlxmlNode');
if(cursor.isSelecting() && !cursor.isSelectingWithinElement()) {
event.preventDefault();
if(cursor.isSelecting() && !cursor.isSelectingWithinElement()) {
event.preventDefault();
return element.getText().length === 1 || selectsWholeTextElement(cursor);
};
return element.getText().length === 1 || selectsWholeTextElement(cursor);
};
+ canvas.wlxmlDocument.startTransaction();
+
if(willDeleteWholeText()) {
event.preventDefault();
if(willDeleteWholeText()) {
event.preventDefault();
}
else if(element.isEmpty()) {
}
else if(element.isEmpty()) {
// todo
event.preventDefault();
}
// todo
event.preventDefault();
}
+ canvas.wlxmlDocument.endTransaction();
+