Esanders has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/81028


Change subject: When pasting, try to use original range
......................................................................

When pasting, try to use original range

This functionality was (accidentally?) removed by I8f8a240a. It
stops us from over-zealously balancing data when we can get away
with just pasting the original selected range (e.g. it always wraps
collections of text and content nodes in another paragraph).

Change-Id: I93fa56c4e43083993c310e0050087e9d1de1e08b
---
M modules/ve/ce/ve.ce.Surface.js
1 file changed, 26 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/VisualEditor 
refs/changes/28/81028/1

diff --git a/modules/ve/ce/ve.ce.Surface.js b/modules/ve/ce/ve.ce.Surface.js
index bde80d7..73d9cf3 100644
--- a/modules/ve/ce/ve.ce.Surface.js
+++ b/modules/ve/ce/ve.ce.Surface.js
@@ -686,17 +686,34 @@
                                )
                        );
                }
-               pasteData = slice.getBalancedData();
 
-               // Annotate
-               ve.dm.Document.addAnnotationsToData( pasteData, 
this.model.getInsertionAnnotations() );
+               try {
+                       // Try to paste in the orignal data
+                       pasteData = 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();

-- 
To view, visit https://gerrit.wikimedia.org/r/81028
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I93fa56c4e43083993c310e0050087e9d1de1e08b
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/VisualEditor
Gerrit-Branch: master
Gerrit-Owner: Esanders <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to