fnp
/
fnpeditor.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: Do not set text on canvas element if it didn't change.
[fnpeditor.git]
/
src
/
editor
/
modules
/
documentCanvas
/
canvas
/
keyboard.js
diff --git
a/src/editor/modules/documentCanvas/canvas/keyboard.js
b/src/editor/modules/documentCanvas/canvas/keyboard.js
index
ee36332
..
16f2f68
100644
(file)
--- a/
src/editor/modules/documentCanvas/canvas/keyboard.js
+++ b/
src/editor/modules/documentCanvas/canvas/keyboard.js
@@
-47,9
+47,12
@@
handlers.push({key: KEYS.ENTER,
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) {
- var added = currentElement.after({tag: currentElement.getWlxmlTag() || 'div', klass: currentElement.getWlxmlClass() || 'p'});
+ var added = currentElement.data('wlxmlNode').after({
+ tag: currentElement.getWlxmlTag() || 'div',
+ attrs: {'class': currentElement.getWlxmlClass() || 'p'}
+ });
added.append({text:''});
added.append({text:''});
- canvas.setCurrentElement(
added
, {caretTo: 'start'});
+ canvas.setCurrentElement(
utils.findCanvasElement(added)
, {caretTo: 'start'});
}
return;
}
}
return;
}
@@
-71,25
+74,25
@@
handlers.push({key: KEYS.ENTER,
return false; // top level element is unsplittable
}
return false; // top level element is unsplittable
}
- var
elements = position.element
.split({offset: position.offset}),
+ var
nodes = position.element.data('wlxmlNode')
.split({offset: position.offset}),
newEmpty,
goto,
gotoOptions;
if(position.offsetAtBeginning)
newEmpty,
goto,
gotoOptions;
if(position.offsetAtBeginning)
- newEmpty =
element
s.first;
+ newEmpty =
node
s.first;
else if(position.offsetAtEnd)
else if(position.offsetAtEnd)
- newEmpty =
element
s.second;
+ newEmpty =
node
s.second;
if(newEmpty) {
if(newEmpty) {
- goto = newEmpty.append(
documentElement.DocumentTextElement.create({text: ''}, this)
);
+ goto = newEmpty.append(
{text: ''}
);
gotoOptions = {};
} else {
gotoOptions = {};
} else {
- goto =
element
s.second;
+ goto =
node
s.second;
gotoOptions = {caretTo: 'start'};
}
gotoOptions = {caretTo: 'start'};
}
- canvas.setCurrentElement(
goto
, gotoOptions);
+ canvas.setCurrentElement(
utils.findCanvasElement(goto)
, gotoOptions);
}
}
}
}
}
}
@@
-186,14
+189,14
@@
handlers.push({keys: [KEYS.BACKSPACE, KEYS.DELETE],
goto;
if(parent.children().length === 1 && parent.children()[0].sameNode(element)) {
if(grandParent && grandParent.children().length === 1) {
goto;
if(parent.children().length === 1 && parent.children()[0].sameNode(element)) {
if(grandParent && grandParent.children().length === 1) {
- goto = grandParent.append({text: ''});
+ goto = grandParent.
data('wlxmlNode').
append({text: ''});
} else {
goto = element.getNearestTextElement(direction);
}
} else {
goto = element.getNearestTextElement(direction);
}
- parent.detach();
+ parent.d
ata('wlxmlNode').d
etach();
} else {
goto = element.getNearestTextElement(direction);
} else {
goto = element.getNearestTextElement(direction);
- element.detach();
+ element.d
ata('wlxmlNode').d
etach();
}
canvas.setCurrentElement(goto, {caretTo: caretTo});
canvas.publisher('contentChanged');
}
canvas.setCurrentElement(goto, {caretTo: caretTo});
canvas.publisher('contentChanged');