+ var text = clipboardData.getData('text/plain').replace(/\r?\n|\r/g, ' '),
+ cursor = canvas.getCursor(),
+ element = cursor.getPosition().element,
+ lhs, rhs;
+
+ if(element && cursor.isWithinElement()) {
+ lhs = element.getText().substr(0, cursor.getSelectionStart().offset);
+ rhs = element.getText().substr(cursor.getSelectionEnd().offset);
+ element.setText(lhs+text+rhs);
+ canvas.setCurrentElement(element, {caretTo: lhs.length + text.length});
+ } else {
+ /* jshint noempty:false */
+ // TODO: alert
+ }
+ });
+
+ /* globals MutationObserver */