getSelectionAnchor: function() {
return this.getSelectionBoundry('anchor');
},
+ getSelectionFocus: function() {
+ return this.getSelectionBoundry('focus');
+ },
getSelectionBoundry: function(which) {
var selection = window.getSelection(),
anchorElement = this.canvas.getDocumentElement(selection.anchorNode),
offsetAtEnd: anchorElement && anchorElement.getText().length === selection.anchorOffset
};
}
+ if(which === 'focus') {
+ return {
+ element: focusElement,
+ offset: selection.focusOffset,
+ offsetAtBeginning: selection.focusOffset === 0,
+ offsetAtEnd: focusElement && focusElement.getText().length === selection.focusOffset
+ };
+ }
var element,
offset;
}
}
} else {
- // TODO: Handle order
+ // TODO: Handle order via https://developer.mozilla.org/en-US/docs/Web/API/Node.compareDocumentPosition
if(which === 'start') {
element = anchorElement;
offset = selection.anchorOffset