fnp
/
fnpeditor.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
editor: handle undefined action state
[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
c815489
..
9be3dae
100644
(file)
--- a/
src/editor/modules/documentCanvas/canvas/keyboard.js
+++ b/
src/editor/modules/documentCanvas/canvas/keyboard.js
@@
-4,7
+4,7
@@
define([
], function(documentElement, utils) {
'use strict';
], function(documentElement, utils) {
'use strict';
-
+/* globals gettext */
var KEYS = {
ENTER: 13,
var KEYS = {
ENTER: 13,
@@
-50,8
+50,8
@@
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) {
- canvas.wlxmlDocument.startTransaction();
- added = currentElement.
data('wlxmlNode')
.after({
+ canvas.wlxmlDocument.startTransaction(
gettext('Splitting text')
);
+ added = currentElement.
wlxmlNode
.after({
tagName: currentElement.getWlxmlTag() || 'div',
attrs: {'class': currentElement.getWlxmlClass() || 'p'}
});
tagName: currentElement.getWlxmlTag() || 'div',
attrs: {'class': currentElement.getWlxmlClass() || 'p'}
});
@@
-68,8
+68,8
@@
handlers.push({key: KEYS.ENTER,
element = element.parent();
}
element = element.parent();
}
- canvas.wlxmlDocument.startTransaction();
- added = element.
data('wlxmlNode')
.after(
+ canvas.wlxmlDocument.startTransaction(
gettext('Splitting text')
);
+ added = element.
wlxmlNode
.after(
{tagName: element.getWlxmlTag() || 'div', attrs: {'class': element.getWlxmlClass() || 'p'}}
);
added.append({text: ''});
{tagName: element.getWlxmlTag() || 'div', attrs: {'class': element.getWlxmlClass() || 'p'}}
);
added.append({text: ''});
@@
-100,9
+100,13
@@
handlers.push({key: KEYS.ENTER,
// goto = nodes.second;
// gotoOptions = {caretTo: 'start'};
// }
// goto = nodes.second;
// gotoOptions = {caretTo: 'start'};
// }
+ var node = position.element.wlxmlNode,
+ result, goto, gotoOptions;
+
+ node.document.transaction(function() {
+ result = position.element.wlxmlNode.breakContent({offset: position.offset});
+ }, this, gettext('Splitting text'));
- var result = position.element.data('wlxmlNode').breakContent({offset: position.offset}),
- goto, gotoOptions;
if(result.emptyText) {
goto = result.emptyText;
gotoOptions = {};
if(result.emptyText) {
goto = result.emptyText;
gotoOptions = {};
@@
-131,7
+135,9
@@
handlers.push({keys: [KEYS.ARROW_UP, KEYS.ARROW_DOWN, KEYS.ARROW_LEFT, KEYS.ARRO
caretTo = 'start';
}
var el = canvas.getDocumentElement(utils.nearestInDocumentOrder('[document-text-element]', direction, element.dom()[0]));
caretTo = 'start';
}
var el = canvas.getDocumentElement(utils.nearestInDocumentOrder('[document-text-element]', direction, element.dom()[0]));
- canvas.setCurrentElement(el, {caretTo: caretTo});
+ if(el) {
+ canvas.setCurrentElement(el, {caretTo: caretTo});
+ }
}
},
keyup: function(event, canvas) {
}
},
keyup: function(event, canvas) {
@@
-181,11
+187,14
@@
handlers.push({keys: [KEYS.BACKSPACE, KEYS.DELETE],
var cursor = canvas.getCursor(),
position = canvas.getCursor().getPosition(),
element = position.element,
var cursor = canvas.getCursor(),
position = canvas.getCursor().getPosition(),
element = position.element,
- node = element
.data('wlxmlNode')
,
+ node = element
? element.wlxmlNode : null
,
direction = 'above',
caretTo = 'end',
goto;
direction = 'above',
caretTo = 'end',
goto;
+ if(!element || !node) {
+ return;
+ }
if(event.which === KEYS.DELETE) {
direction = 'below';
if(event.which === KEYS.DELETE) {
direction = 'below';
@@
-217,11
+226,11
@@
handlers.push({keys: [KEYS.BACKSPACE, KEYS.DELETE],
canvas.wlxmlDocument.deleteText({
from: {
canvas.wlxmlDocument.deleteText({
from: {
- node: start.element.
data('wlxmlNode')
,
+ node: start.element.
wlxmlNode
,
offset: start.offset
},
to: {
offset: start.offset
},
to: {
- node: end.element.
data('wlxmlNode')
,
+ node: end.element.
wlxmlNode
,
offset: end.offset
}
});
offset: end.offset
}
});
@@
-254,24
+263,23
@@
handlers.push({keys: [KEYS.BACKSPACE, KEYS.DELETE],
}
if(parent.children().length === 1 && parent.children()[0].sameNode(element)) {
if(grandParent && grandParent.children().length === 1) {
}
if(parent.children().length === 1 && parent.children()[0].sameNode(element)) {
if(grandParent && grandParent.children().length === 1) {
- goto = grandParent.
data('wlxmlNode')
.append({text: ''});
+ goto = grandParent.
wlxmlNode
.append({text: ''});
} else {
goto = element.getNearestTextElement(direction);
}
} else {
goto = element.getNearestTextElement(direction);
}
- parent.
data('wlxmlNode')
.detach();
+ parent.
wlxmlNode
.detach();
} else {
goto = element.getNearestTextElement(direction);
} else {
goto = element.getNearestTextElement(direction);
- element.
data('wlxmlNode')
.detach();
+ element.
wlxmlNode
.detach();
}
canvas.setCurrentElement(goto, {caretTo: caretTo});
}
canvas.setCurrentElement(goto, {caretTo: caretTo});
- canvas.publisher('contentChanged');
}
else if(cursorAtOperationEdge) {
if(direction === 'below') {
element = element.getNearestTextElement(direction);
}
if(element) {
}
else if(cursorAtOperationEdge) {
if(direction === 'below') {
element = element.getNearestTextElement(direction);
}
if(element) {
- goto = element.
data('wlxmlNode')
.mergeContentUp();
+ goto = element.
wlxmlNode
.mergeContentUp();
canvas.setCurrentElement(goto.node, {caretTo: goto.offset});
}
event.preventDefault();
canvas.setCurrentElement(goto.node, {caretTo: goto.offset});
}
event.preventDefault();