Merge "When pasting, try to use original range"

This commit is contained in:
jenkins-bot 2013-08-29 18:26:53 +00:00 committed by Gerrit Code Review
commit 4291b2a308

View file

@ -718,17 +718,35 @@ ve.ce.Surface.prototype.onPaste = function ( e ) {
)
);
}
pasteData = slice.getBalancedData();
// Annotate
ve.dm.Document.addAnnotationsToData( pasteData, this.model.getInsertionAnnotations() );
try {
// Try to paste in the orignal data
// Take a copy to prevent the data being annotated a second time in the catch block
pasteData = ve.copy( slice.getData() );
// Transaction
tx = ve.dm.Transaction.newFromInsertion(
view.documentView.model,
selection.start,
pasteData
);
// Annotate
ve.dm.Document.addAnnotationsToData( pasteData, this.model.getInsertionAnnotations() );
// Transaction
tx = ve.dm.Transaction.newFromInsertion(
view.documentView.model,
selection.start,
pasteData
);
} catch ( e ) {
// If that fails, balance the data before pasting
pasteData = slice.getBalancedData();
// Annotate
ve.dm.Document.addAnnotationsToData( pasteData, this.model.getInsertionAnnotations() );
// Transaction
tx = ve.dm.Transaction.newFromInsertion(
view.documentView.model,
selection.start,
pasteData
);
}
// Restore focus and scroll position
view.documentView.documentNode.$[0].focus();